<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.13.1"/><meta name="description" content="大数据 大数据学习笔记 大数据学习笔记
HBase
HBase HBase 官网 Jira HBase Jira 地址
Kafka
Kafka Kafka 官网 Jira Kafka 官网 Jira 地址
Flink
Ververica Flink 教程 Verve…" data-gatsby-head="true"/><meta name="image" content="https://minimal-blog.lekoarts.de/banner.jpg" data-gatsby-head="true"/><meta property="og:title" content="书签 | MQ Blog" data-gatsby-head="true"/><meta property="og:url" content="https://minimal-blog.lekoarts.de" data-gatsby-head="true"/><meta property="og:description" content="大数据 大数据学习笔记 大数据学习笔记
HBase
HBase HBase 官网 Jira HBase Jira 地址
Kafka
Kafka Kafka 官网 Jira Kafka 官网 Jira 地址
Flink
Ververica Flink 教程 Verve…" data-gatsby-head="true"/><meta property="og:image" content="https://minimal-blog.lekoarts.de/banner.jpg" data-gatsby-head="true"/><meta property="og:type" content="website" data-gatsby-head="true"/><meta property="og:image:alt" content="大数据 大数据学习笔记 大数据学习笔记
HBase
HBase HBase 官网 Jira HBase Jira 地址
Kafka
Kafka Kafka 官网 Jira Kafka 官网 Jira 地址
Flink
Ververica Flink 教程 Verve…" data-gatsby-head="true"/><meta name="twitter:card" content="summary_large_image" data-gatsby-head="true"/><meta name="twitter:title" content="书签 | MQ Blog" data-gatsby-head="true"/><meta name="twitter:url" content="https://minimal-blog.lekoarts.de" data-gatsby-head="true"/><meta name="twitter:description" content="大数据 大数据学习笔记 大数据学习笔记
HBase
HBase HBase 官网 Jira HBase Jira 地址
Kafka
Kafka Kafka 官网 Jira Kafka 官网 Jira 地址
Flink
Ververica Flink 教程 Verve…" data-gatsby-head="true"/><meta name="twitter:image" content="https://minimal-blog.lekoarts.de/banner.jpg" data-gatsby-head="true"/><meta name="twitter:image:alt" content="大数据 大数据学习笔记 大数据学习笔记
HBase
HBase HBase 官网 Jira HBase Jira 地址
Kafka
Kafka Kafka 官网 Jira Kafka 官网 Jira 地址
Flink
Ververica Flink 教程 Verve…" data-gatsby-head="true"/><meta name="twitter:creator" content="@lekoarts_de" data-gatsby-head="true"/><meta name="gatsby-theme" content="@lekoarts/gatsby-theme-minimal-blog" data-gatsby-head="true"/><style data-href="/styles.3726f63730cd7b49d504.css" data-identity="gatsby-global-css">.button{-webkit-appearance:none;appearance:none;background-color:transparent;border:none;cursor:pointer;display:none;height:90px;outline:none;position:absolute;top:calc(50% - 90);width:60px}.carousel{height:0;padding-top:56.25%;position:relative;width:100%}.carousel-container{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;top:0;width:100%}.carousel:hover .button{display:inherit}.indicator-container{background-color:none;bottom:10px;display:flex;justify-content:center;position:absolute;width:100%}.indicator{border-radius:50%;height:10px;margin-left:10px;width:10px}.home-page{height:100%;position:relative;width:100%}.home-page>h1{left:10%;position:absolute;top:10%}.post>h1:first-child{display:none}</style><style type="text/css">
    .anchor.before {
      position: absolute;
      top: 0;
      left: 0;
      transform: translateX(-100%);
      padding-right: 4px;
    }
    .anchor.after {
      display: inline-block;
      padding-left: 4px;
    }
    h1 .anchor svg,
    h2 .anchor svg,
    h3 .anchor svg,
    h4 .anchor svg,
    h5 .anchor svg,
    h6 .anchor svg {
      visibility: hidden;
    }
    h1:hover .anchor svg,
    h2:hover .anchor svg,
    h3:hover .anchor svg,
    h4:hover .anchor svg,
    h5:hover .anchor svg,
    h6:hover .anchor svg,
    h1 .anchor:focus svg,
    h2 .anchor:focus svg,
    h3 .anchor:focus svg,
    h4 .anchor:focus svg,
    h5 .anchor:focus svg,
    h6 .anchor:focus svg {
      visibility: visible;
    }
  </style><script>
    document.addEventListener("DOMContentLoaded", function(event) {
      var hash = window.decodeURI(location.hash.replace('#', ''))
      if (hash !== '') {
        var element = document.getElementById(hash)
        if (element) {
          var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
          var clientTop = document.documentElement.clientTop || document.body.clientTop || 0
          var offset = element.getBoundingClientRect().top + scrollTop - clientTop
          // Wait for the browser to finish rendering before scrolling.
          setTimeout((function() {
            window.scrollTo(0, offset - 0)
          }), 0)
        }
      }
    })
  </script><link rel="sitemap" type="application/xml" href="/sitemap-index.xml"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="192x192" href="/android-chrome-192x192.png"/><link rel="apple-touch-icon" sizes="512x512" href="/android-chrome-512x512.png"/><link rel="alternate" type="application/rss+xml" title="Minimal Blog - @lekoarts/gatsby-theme-minimal-blog" href="/rss.xml"/><style data-emotion="css-global 1bif9id" data-gatsby-head="true">html{--theme-ui-colors-transparent:transparent;--theme-ui-colors-black:#000;--theme-ui-colors-white:#fff;--theme-ui-colors-slate-0:#f8fafc;--theme-ui-colors-slate-1:#f1f5f9;--theme-ui-colors-slate-2:#e2e8f0;--theme-ui-colors-slate-3:#cbd5e1;--theme-ui-colors-slate-4:#94a3b8;--theme-ui-colors-slate-5:#64748b;--theme-ui-colors-slate-6:#475569;--theme-ui-colors-slate-7:#334155;--theme-ui-colors-slate-8:#1e293b;--theme-ui-colors-slate-9:#0f172a;--theme-ui-colors-gray-0:#f9fafb;--theme-ui-colors-gray-1:#f3f4f6;--theme-ui-colors-gray-2:#e5e7eb;--theme-ui-colors-gray-3:#d1d5db;--theme-ui-colors-gray-4:#9ca3af;--theme-ui-colors-gray-5:#6b7280;--theme-ui-colors-gray-6:#4b5563;--theme-ui-colors-gray-7:#374151;--theme-ui-colors-gray-8:#1f2937;--theme-ui-colors-gray-9:#111827;--theme-ui-colors-zinc-0:#fafafa;--theme-ui-colors-zinc-1:#f4f4f5;--theme-ui-colors-zinc-2:#e4e4e7;--theme-ui-colors-zinc-3:#d4d4d8;--theme-ui-colors-zinc-4:#a1a1aa;--theme-ui-colors-zinc-5:#71717a;--theme-ui-colors-zinc-6:#52525b;--theme-ui-colors-zinc-7:#3f3f46;--theme-ui-colors-zinc-8:#27272a;--theme-ui-colors-zinc-9:#18181b;--theme-ui-colors-neutral-0:#fafafa;--theme-ui-colors-neutral-1:#f5f5f5;--theme-ui-colors-neutral-2:#e5e5e5;--theme-ui-colors-neutral-3:#d4d4d4;--theme-ui-colors-neutral-4:#a3a3a3;--theme-ui-colors-neutral-5:#737373;--theme-ui-colors-neutral-6:#525252;--theme-ui-colors-neutral-7:#404040;--theme-ui-colors-neutral-8:#262626;--theme-ui-colors-neutral-9:#171717;--theme-ui-colors-stone-0:#fafaf9;--theme-ui-colors-stone-1:#f5f5f4;--theme-ui-colors-stone-2:#e7e5e4;--theme-ui-colors-stone-3:#d6d3d1;--theme-ui-colors-stone-4:#a8a29e;--theme-ui-colors-stone-5:#78716c;--theme-ui-colors-stone-6:#57534e;--theme-ui-colors-stone-7:#44403c;--theme-ui-colors-stone-8:#292524;--theme-ui-colors-stone-9:#1c1917;--theme-ui-colors-red-0:#fef2f2;--theme-ui-colors-red-1:#fee2e2;--theme-ui-colors-red-2:#fecaca;--theme-ui-colors-red-3:#fca5a5;--theme-ui-colors-red-4:#f87171;--theme-ui-colors-red-5:#ef4444;--theme-ui-colors-red-6:#dc2626;--theme-ui-colors-red-7:#b91c1c;--theme-ui-colors-red-8:#991b1b;--theme-ui-colors-red-9:#7f1d1d;--theme-ui-colors-orange-0:#fff7ed;--theme-ui-colors-orange-1:#ffedd5;--theme-ui-colors-orange-2:#fed7aa;--theme-ui-colors-orange-3:#fdba74;--theme-ui-colors-orange-4:#fb923c;--theme-ui-colors-orange-5:#f97316;--theme-ui-colors-orange-6:#ea580c;--theme-ui-colors-orange-7:#c2410c;--theme-ui-colors-orange-8:#9a3412;--theme-ui-colors-orange-9:#7c2d12;--theme-ui-colors-amber-0:#fffbeb;--theme-ui-colors-amber-1:#fef3c7;--theme-ui-colors-amber-2:#fde68a;--theme-ui-colors-amber-3:#fcd34d;--theme-ui-colors-amber-4:#fbbf24;--theme-ui-colors-amber-5:#f59e0b;--theme-ui-colors-amber-6:#d97706;--theme-ui-colors-amber-7:#b45309;--theme-ui-colors-amber-8:#92400e;--theme-ui-colors-amber-9:#78350f;--theme-ui-colors-yellow-0:#fefce8;--theme-ui-colors-yellow-1:#fef9c3;--theme-ui-colors-yellow-2:#fef08a;--theme-ui-colors-yellow-3:#fde047;--theme-ui-colors-yellow-4:#facc15;--theme-ui-colors-yellow-5:#eab308;--theme-ui-colors-yellow-6:#ca8a04;--theme-ui-colors-yellow-7:#a16207;--theme-ui-colors-yellow-8:#854d0e;--theme-ui-colors-yellow-9:#713f12;--theme-ui-colors-lime-0:#f7fee7;--theme-ui-colors-lime-1:#ecfccb;--theme-ui-colors-lime-2:#d9f99d;--theme-ui-colors-lime-3:#bef264;--theme-ui-colors-lime-4:#a3e635;--theme-ui-colors-lime-5:#84cc16;--theme-ui-colors-lime-6:#65a30d;--theme-ui-colors-lime-7:#4d7c0f;--theme-ui-colors-lime-8:#3f6212;--theme-ui-colors-lime-9:#365314;--theme-ui-colors-green-0:#f0fdf4;--theme-ui-colors-green-1:#dcfce7;--theme-ui-colors-green-2:#bbf7d0;--theme-ui-colors-green-3:#86efac;--theme-ui-colors-green-4:#4ade80;--theme-ui-colors-green-5:#22c55e;--theme-ui-colors-green-6:#16a34a;--theme-ui-colors-green-7:#15803d;--theme-ui-colors-green-8:#166534;--theme-ui-colors-green-9:#14532d;--theme-ui-colors-emerald-0:#ecfdf5;--theme-ui-colors-emerald-1:#d1fae5;--theme-ui-colors-emerald-2:#a7f3d0;--theme-ui-colors-emerald-3:#6ee7b7;--theme-ui-colors-emerald-4:#34d399;--theme-ui-colors-emerald-5:#10b981;--theme-ui-colors-emerald-6:#059669;--theme-ui-colors-emerald-7:#047857;--theme-ui-colors-emerald-8:#065f46;--theme-ui-colors-emerald-9:#064e3b;--theme-ui-colors-teal-0:#f0fdfa;--theme-ui-colors-teal-1:#ccfbf1;--theme-ui-colors-teal-2:#99f6e4;--theme-ui-colors-teal-3:#5eead4;--theme-ui-colors-teal-4:#2dd4bf;--theme-ui-colors-teal-5:#14b8a6;--theme-ui-colors-teal-6:#0d9488;--theme-ui-colors-teal-7:#0f766e;--theme-ui-colors-teal-8:#115e59;--theme-ui-colors-teal-9:#134e4a;--theme-ui-colors-cyan-0:#ecfeff;--theme-ui-colors-cyan-1:#cffafe;--theme-ui-colors-cyan-2:#a5f3fc;--theme-ui-colors-cyan-3:#67e8f9;--theme-ui-colors-cyan-4:#22d3ee;--theme-ui-colors-cyan-5:#06b6d4;--theme-ui-colors-cyan-6:#0891b2;--theme-ui-colors-cyan-7:#0e7490;--theme-ui-colors-cyan-8:#155e75;--theme-ui-colors-cyan-9:#164e63;--theme-ui-colors-sky-0:#f0f9ff;--theme-ui-colors-sky-1:#e0f2fe;--theme-ui-colors-sky-2:#bae6fd;--theme-ui-colors-sky-3:#7dd3fc;--theme-ui-colors-sky-4:#38bdf8;--theme-ui-colors-sky-5:#0ea5e9;--theme-ui-colors-sky-6:#0284c7;--theme-ui-colors-sky-7:#0369a1;--theme-ui-colors-sky-8:#075985;--theme-ui-colors-sky-9:#0c4a6e;--theme-ui-colors-blue-0:#eff6ff;--theme-ui-colors-blue-1:#dbeafe;--theme-ui-colors-blue-2:#bfdbfe;--theme-ui-colors-blue-3:#93c5fd;--theme-ui-colors-blue-4:#60a5fa;--theme-ui-colors-blue-5:#3b82f6;--theme-ui-colors-blue-6:#2563eb;--theme-ui-colors-blue-7:#1d4ed8;--theme-ui-colors-blue-8:#1e40af;--theme-ui-colors-blue-9:#1e3a8a;--theme-ui-colors-indigo-0:#eef2ff;--theme-ui-colors-indigo-1:#e0e7ff;--theme-ui-colors-indigo-2:#c7d2fe;--theme-ui-colors-indigo-3:#a5b4fc;--theme-ui-colors-indigo-4:#818cf8;--theme-ui-colors-indigo-5:#6366f1;--theme-ui-colors-indigo-6:#4f46e5;--theme-ui-colors-indigo-7:#4338ca;--theme-ui-colors-indigo-8:#3730a3;--theme-ui-colors-indigo-9:#312e81;--theme-ui-colors-violet-0:#f5f3ff;--theme-ui-colors-violet-1:#ede9fe;--theme-ui-colors-violet-2:#ddd6fe;--theme-ui-colors-violet-3:#c4b5fd;--theme-ui-colors-violet-4:#a78bfa;--theme-ui-colors-violet-5:#8b5cf6;--theme-ui-colors-violet-6:#7c3aed;--theme-ui-colors-violet-7:#6d28d9;--theme-ui-colors-violet-8:#5b21b6;--theme-ui-colors-violet-9:#4c1d95;--theme-ui-colors-purple-0:#faf5ff;--theme-ui-colors-purple-1:#f3e8ff;--theme-ui-colors-purple-2:#e9d5ff;--theme-ui-colors-purple-3:#d8b4fe;--theme-ui-colors-purple-4:#c084fc;--theme-ui-colors-purple-5:#a855f7;--theme-ui-colors-purple-6:#9333ea;--theme-ui-colors-purple-7:#7e22ce;--theme-ui-colors-purple-8:#6b21a8;--theme-ui-colors-purple-9:#581c87;--theme-ui-colors-fuchsia-0:#fdf4ff;--theme-ui-colors-fuchsia-1:#fae8ff;--theme-ui-colors-fuchsia-2:#f5d0fe;--theme-ui-colors-fuchsia-3:#f0abfc;--theme-ui-colors-fuchsia-4:#e879f9;--theme-ui-colors-fuchsia-5:#d946ef;--theme-ui-colors-fuchsia-6:#c026d3;--theme-ui-colors-fuchsia-7:#a21caf;--theme-ui-colors-fuchsia-8:#86198f;--theme-ui-colors-fuchsia-9:#701a75;--theme-ui-colors-pink-0:#fdf2f8;--theme-ui-colors-pink-1:#fce7f3;--theme-ui-colors-pink-2:#fbcfe8;--theme-ui-colors-pink-3:#f9a8d4;--theme-ui-colors-pink-4:#f472b6;--theme-ui-colors-pink-5:#ec4899;--theme-ui-colors-pink-6:#db2777;--theme-ui-colors-pink-7:#be185d;--theme-ui-colors-pink-8:#9d174d;--theme-ui-colors-pink-9:#831843;--theme-ui-colors-rose-0:#fff1f2;--theme-ui-colors-rose-1:#ffe4e6;--theme-ui-colors-rose-2:#fecdd3;--theme-ui-colors-rose-3:#fda4af;--theme-ui-colors-rose-4:#fb7185;--theme-ui-colors-rose-5:#f43f5e;--theme-ui-colors-rose-6:#e11d48;--theme-ui-colors-rose-7:#be123c;--theme-ui-colors-rose-8:#9f1239;--theme-ui-colors-rose-9:#881337;--theme-ui-colors-grayDark:#1f2937;--theme-ui-colors-text:#1f2937;--theme-ui-colors-background:#fff;--theme-ui-colors-primary:#1d4ed8;--theme-ui-colors-primaryHover:#1e40af;--theme-ui-colors-secondary:#4b5563;--theme-ui-colors-muted:#d1d5db;--theme-ui-colors-success:#86efac;--theme-ui-colors-info:#60a5fa;--theme-ui-colors-warning:#fde047;--theme-ui-colors-danger:#fca5a5;--theme-ui-colors-light:#f3f4f6;--theme-ui-colors-dark:#1f2937;--theme-ui-colors-textMuted:#4b5563;--theme-ui-colors-plain-color:#393A34;--theme-ui-colors-plain-backgroundColor:#f6f8fa;--theme-ui-colors-comment-color:#999988;--theme-ui-colors-comment-fontStyle:italic;--theme-ui-colors-prolog-color:#999988;--theme-ui-colors-prolog-fontStyle:italic;--theme-ui-colors-doctype-color:#999988;--theme-ui-colors-doctype-fontStyle:italic;--theme-ui-colors-cdata-color:#999988;--theme-ui-colors-cdata-fontStyle:italic;--theme-ui-colors-namespace-opacity:0.7;--theme-ui-colors-string-color:#e3116c;--theme-ui-colors-attr-value-color:#e3116c;--theme-ui-colors-punctuation-color:#393A34;--theme-ui-colors-operator-color:#393A34;--theme-ui-colors-entity-color:#36acaa;--theme-ui-colors-url-color:#36acaa;--theme-ui-colors-symbol-color:#36acaa;--theme-ui-colors-number-color:#36acaa;--theme-ui-colors-boolean-color:#36acaa;--theme-ui-colors-variable-color:#36acaa;--theme-ui-colors-constant-color:#36acaa;--theme-ui-colors-property-color:#36acaa;--theme-ui-colors-regex-color:#36acaa;--theme-ui-colors-inserted-color:#36acaa;--theme-ui-colors-atrule-color:#00a4db;--theme-ui-colors-keyword-color:#00009f;--theme-ui-colors-attr-name-color:#00a4db;--theme-ui-colors-selector-color:#00009f;--theme-ui-colors-function-color:#d73a49;--theme-ui-colors-deleted-color:#d73a49;--theme-ui-colors-tag-color:#00009f;--theme-ui-colors-function-variable-color:#6f42c1;--theme-ui-colors-toggleIcon:#1f2937;--theme-ui-colors-heading:#000;--theme-ui-colors-highlight:#28292a;color:var(--theme-ui-colors-text);background-color:var(--theme-ui-colors-background);}html.theme-ui-__default,.theme-ui-__default html{--theme-ui-colors-transparent:transparent;--theme-ui-colors-black:#000;--theme-ui-colors-white:#fff;--theme-ui-colors-slate-0:#f8fafc;--theme-ui-colors-slate-1:#f1f5f9;--theme-ui-colors-slate-2:#e2e8f0;--theme-ui-colors-slate-3:#cbd5e1;--theme-ui-colors-slate-4:#94a3b8;--theme-ui-colors-slate-5:#64748b;--theme-ui-colors-slate-6:#475569;--theme-ui-colors-slate-7:#334155;--theme-ui-colors-slate-8:#1e293b;--theme-ui-colors-slate-9:#0f172a;--theme-ui-colors-gray-0:#f9fafb;--theme-ui-colors-gray-1:#f3f4f6;--theme-ui-colors-gray-2:#e5e7eb;--theme-ui-colors-gray-3:#d1d5db;--theme-ui-colors-gray-4:#9ca3af;--theme-ui-colors-gray-5:#6b7280;--theme-ui-colors-gray-6:#4b5563;--theme-ui-colors-gray-7:#374151;--theme-ui-colors-gray-8:#1f2937;--theme-ui-colors-gray-9:#111827;--theme-ui-colors-zinc-0:#fafafa;--theme-ui-colors-zinc-1:#f4f4f5;--theme-ui-colors-zinc-2:#e4e4e7;--theme-ui-colors-zinc-3:#d4d4d8;--theme-ui-colors-zinc-4:#a1a1aa;--theme-ui-colors-zinc-5:#71717a;--theme-ui-colors-zinc-6:#52525b;--theme-ui-colors-zinc-7:#3f3f46;--theme-ui-colors-zinc-8:#27272a;--theme-ui-colors-zinc-9:#18181b;--theme-ui-colors-neutral-0:#fafafa;--theme-ui-colors-neutral-1:#f5f5f5;--theme-ui-colors-neutral-2:#e5e5e5;--theme-ui-colors-neutral-3:#d4d4d4;--theme-ui-colors-neutral-4:#a3a3a3;--theme-ui-colors-neutral-5:#737373;--theme-ui-colors-neutral-6:#525252;--theme-ui-colors-neutral-7:#404040;--theme-ui-colors-neutral-8:#262626;--theme-ui-colors-neutral-9:#171717;--theme-ui-colors-stone-0:#fafaf9;--theme-ui-colors-stone-1:#f5f5f4;--theme-ui-colors-stone-2:#e7e5e4;--theme-ui-colors-stone-3:#d6d3d1;--theme-ui-colors-stone-4:#a8a29e;--theme-ui-colors-stone-5:#78716c;--theme-ui-colors-stone-6:#57534e;--theme-ui-colors-stone-7:#44403c;--theme-ui-colors-stone-8:#292524;--theme-ui-colors-stone-9:#1c1917;--theme-ui-colors-red-0:#fef2f2;--theme-ui-colors-red-1:#fee2e2;--theme-ui-colors-red-2:#fecaca;--theme-ui-colors-red-3:#fca5a5;--theme-ui-colors-red-4:#f87171;--theme-ui-colors-red-5:#ef4444;--theme-ui-colors-red-6:#dc2626;--theme-ui-colors-red-7:#b91c1c;--theme-ui-colors-red-8:#991b1b;--theme-ui-colors-red-9:#7f1d1d;--theme-ui-colors-orange-0:#fff7ed;--theme-ui-colors-orange-1:#ffedd5;--theme-ui-colors-orange-2:#fed7aa;--theme-ui-colors-orange-3:#fdba74;--theme-ui-colors-orange-4:#fb923c;--theme-ui-colors-orange-5:#f97316;--theme-ui-colors-orange-6:#ea580c;--theme-ui-colors-orange-7:#c2410c;--theme-ui-colors-orange-8:#9a3412;--theme-ui-colors-orange-9:#7c2d12;--theme-ui-colors-amber-0:#fffbeb;--theme-ui-colors-amber-1:#fef3c7;--theme-ui-colors-amber-2:#fde68a;--theme-ui-colors-amber-3:#fcd34d;--theme-ui-colors-amber-4:#fbbf24;--theme-ui-colors-amber-5:#f59e0b;--theme-ui-colors-amber-6:#d97706;--theme-ui-colors-amber-7:#b45309;--theme-ui-colors-amber-8:#92400e;--theme-ui-colors-amber-9:#78350f;--theme-ui-colors-yellow-0:#fefce8;--theme-ui-colors-yellow-1:#fef9c3;--theme-ui-colors-yellow-2:#fef08a;--theme-ui-colors-yellow-3:#fde047;--theme-ui-colors-yellow-4:#facc15;--theme-ui-colors-yellow-5:#eab308;--theme-ui-colors-yellow-6:#ca8a04;--theme-ui-colors-yellow-7:#a16207;--theme-ui-colors-yellow-8:#854d0e;--theme-ui-colors-yellow-9:#713f12;--theme-ui-colors-lime-0:#f7fee7;--theme-ui-colors-lime-1:#ecfccb;--theme-ui-colors-lime-2:#d9f99d;--theme-ui-colors-lime-3:#bef264;--theme-ui-colors-lime-4:#a3e635;--theme-ui-colors-lime-5:#84cc16;--theme-ui-colors-lime-6:#65a30d;--theme-ui-colors-lime-7:#4d7c0f;--theme-ui-colors-lime-8:#3f6212;--theme-ui-colors-lime-9:#365314;--theme-ui-colors-green-0:#f0fdf4;--theme-ui-colors-green-1:#dcfce7;--theme-ui-colors-green-2:#bbf7d0;--theme-ui-colors-green-3:#86efac;--theme-ui-colors-green-4:#4ade80;--theme-ui-colors-green-5:#22c55e;--theme-ui-colors-green-6:#16a34a;--theme-ui-colors-green-7:#15803d;--theme-ui-colors-green-8:#166534;--theme-ui-colors-green-9:#14532d;--theme-ui-colors-emerald-0:#ecfdf5;--theme-ui-colors-emerald-1:#d1fae5;--theme-ui-colors-emerald-2:#a7f3d0;--theme-ui-colors-emerald-3:#6ee7b7;--theme-ui-colors-emerald-4:#34d399;--theme-ui-colors-emerald-5:#10b981;--theme-ui-colors-emerald-6:#059669;--theme-ui-colors-emerald-7:#047857;--theme-ui-colors-emerald-8:#065f46;--theme-ui-colors-emerald-9:#064e3b;--theme-ui-colors-teal-0:#f0fdfa;--theme-ui-colors-teal-1:#ccfbf1;--theme-ui-colors-teal-2:#99f6e4;--theme-ui-colors-teal-3:#5eead4;--theme-ui-colors-teal-4:#2dd4bf;--theme-ui-colors-teal-5:#14b8a6;--theme-ui-colors-teal-6:#0d9488;--theme-ui-colors-teal-7:#0f766e;--theme-ui-colors-teal-8:#115e59;--theme-ui-colors-teal-9:#134e4a;--theme-ui-colors-cyan-0:#ecfeff;--theme-ui-colors-cyan-1:#cffafe;--theme-ui-colors-cyan-2:#a5f3fc;--theme-ui-colors-cyan-3:#67e8f9;--theme-ui-colors-cyan-4:#22d3ee;--theme-ui-colors-cyan-5:#06b6d4;--theme-ui-colors-cyan-6:#0891b2;--theme-ui-colors-cyan-7:#0e7490;--theme-ui-colors-cyan-8:#155e75;--theme-ui-colors-cyan-9:#164e63;--theme-ui-colors-sky-0:#f0f9ff;--theme-ui-colors-sky-1:#e0f2fe;--theme-ui-colors-sky-2:#bae6fd;--theme-ui-colors-sky-3:#7dd3fc;--theme-ui-colors-sky-4:#38bdf8;--theme-ui-colors-sky-5:#0ea5e9;--theme-ui-colors-sky-6:#0284c7;--theme-ui-colors-sky-7:#0369a1;--theme-ui-colors-sky-8:#075985;--theme-ui-colors-sky-9:#0c4a6e;--theme-ui-colors-blue-0:#eff6ff;--theme-ui-colors-blue-1:#dbeafe;--theme-ui-colors-blue-2:#bfdbfe;--theme-ui-colors-blue-3:#93c5fd;--theme-ui-colors-blue-4:#60a5fa;--theme-ui-colors-blue-5:#3b82f6;--theme-ui-colors-blue-6:#2563eb;--theme-ui-colors-blue-7:#1d4ed8;--theme-ui-colors-blue-8:#1e40af;--theme-ui-colors-blue-9:#1e3a8a;--theme-ui-colors-indigo-0:#eef2ff;--theme-ui-colors-indigo-1:#e0e7ff;--theme-ui-colors-indigo-2:#c7d2fe;--theme-ui-colors-indigo-3:#a5b4fc;--theme-ui-colors-indigo-4:#818cf8;--theme-ui-colors-indigo-5:#6366f1;--theme-ui-colors-indigo-6:#4f46e5;--theme-ui-colors-indigo-7:#4338ca;--theme-ui-colors-indigo-8:#3730a3;--theme-ui-colors-indigo-9:#312e81;--theme-ui-colors-violet-0:#f5f3ff;--theme-ui-colors-violet-1:#ede9fe;--theme-ui-colors-violet-2:#ddd6fe;--theme-ui-colors-violet-3:#c4b5fd;--theme-ui-colors-violet-4:#a78bfa;--theme-ui-colors-violet-5:#8b5cf6;--theme-ui-colors-violet-6:#7c3aed;--theme-ui-colors-violet-7:#6d28d9;--theme-ui-colors-violet-8:#5b21b6;--theme-ui-colors-violet-9:#4c1d95;--theme-ui-colors-purple-0:#faf5ff;--theme-ui-colors-purple-1:#f3e8ff;--theme-ui-colors-purple-2:#e9d5ff;--theme-ui-colors-purple-3:#d8b4fe;--theme-ui-colors-purple-4:#c084fc;--theme-ui-colors-purple-5:#a855f7;--theme-ui-colors-purple-6:#9333ea;--theme-ui-colors-purple-7:#7e22ce;--theme-ui-colors-purple-8:#6b21a8;--theme-ui-colors-purple-9:#581c87;--theme-ui-colors-fuchsia-0:#fdf4ff;--theme-ui-colors-fuchsia-1:#fae8ff;--theme-ui-colors-fuchsia-2:#f5d0fe;--theme-ui-colors-fuchsia-3:#f0abfc;--theme-ui-colors-fuchsia-4:#e879f9;--theme-ui-colors-fuchsia-5:#d946ef;--theme-ui-colors-fuchsia-6:#c026d3;--theme-ui-colors-fuchsia-7:#a21caf;--theme-ui-colors-fuchsia-8:#86198f;--theme-ui-colors-fuchsia-9:#701a75;--theme-ui-colors-pink-0:#fdf2f8;--theme-ui-colors-pink-1:#fce7f3;--theme-ui-colors-pink-2:#fbcfe8;--theme-ui-colors-pink-3:#f9a8d4;--theme-ui-colors-pink-4:#f472b6;--theme-ui-colors-pink-5:#ec4899;--theme-ui-colors-pink-6:#db2777;--theme-ui-colors-pink-7:#be185d;--theme-ui-colors-pink-8:#9d174d;--theme-ui-colors-pink-9:#831843;--theme-ui-colors-rose-0:#fff1f2;--theme-ui-colors-rose-1:#ffe4e6;--theme-ui-colors-rose-2:#fecdd3;--theme-ui-colors-rose-3:#fda4af;--theme-ui-colors-rose-4:#fb7185;--theme-ui-colors-rose-5:#f43f5e;--theme-ui-colors-rose-6:#e11d48;--theme-ui-colors-rose-7:#be123c;--theme-ui-colors-rose-8:#9f1239;--theme-ui-colors-rose-9:#881337;--theme-ui-colors-grayDark:#1f2937;--theme-ui-colors-text:#1f2937;--theme-ui-colors-background:#fff;--theme-ui-colors-primary:#1d4ed8;--theme-ui-colors-primaryHover:#1e40af;--theme-ui-colors-secondary:#4b5563;--theme-ui-colors-muted:#d1d5db;--theme-ui-colors-success:#86efac;--theme-ui-colors-info:#60a5fa;--theme-ui-colors-warning:#fde047;--theme-ui-colors-danger:#fca5a5;--theme-ui-colors-light:#f3f4f6;--theme-ui-colors-dark:#1f2937;--theme-ui-colors-textMuted:#4b5563;--theme-ui-colors-plain-color:#393A34;--theme-ui-colors-plain-backgroundColor:#f6f8fa;--theme-ui-colors-comment-color:#999988;--theme-ui-colors-comment-fontStyle:italic;--theme-ui-colors-prolog-color:#999988;--theme-ui-colors-prolog-fontStyle:italic;--theme-ui-colors-doctype-color:#999988;--theme-ui-colors-doctype-fontStyle:italic;--theme-ui-colors-cdata-color:#999988;--theme-ui-colors-cdata-fontStyle:italic;--theme-ui-colors-namespace-opacity:0.7;--theme-ui-colors-string-color:#e3116c;--theme-ui-colors-attr-value-color:#e3116c;--theme-ui-colors-punctuation-color:#393A34;--theme-ui-colors-operator-color:#393A34;--theme-ui-colors-entity-color:#36acaa;--theme-ui-colors-url-color:#36acaa;--theme-ui-colors-symbol-color:#36acaa;--theme-ui-colors-number-color:#36acaa;--theme-ui-colors-boolean-color:#36acaa;--theme-ui-colors-variable-color:#36acaa;--theme-ui-colors-constant-color:#36acaa;--theme-ui-colors-property-color:#36acaa;--theme-ui-colors-regex-color:#36acaa;--theme-ui-colors-inserted-color:#36acaa;--theme-ui-colors-atrule-color:#00a4db;--theme-ui-colors-keyword-color:#00009f;--theme-ui-colors-attr-name-color:#00a4db;--theme-ui-colors-selector-color:#00009f;--theme-ui-colors-function-color:#d73a49;--theme-ui-colors-deleted-color:#d73a49;--theme-ui-colors-tag-color:#00009f;--theme-ui-colors-function-variable-color:#6f42c1;--theme-ui-colors-toggleIcon:#1f2937;--theme-ui-colors-heading:#000;--theme-ui-colors-highlight:#28292a;}html.theme-ui-dark,.theme-ui-dark html{--theme-ui-colors-plain-color:#9CDCFE;--theme-ui-colors-plain-backgroundColor:#28292a;--theme-ui-colors-prolog-color:rgb(0, 0, 128);--theme-ui-colors-comment-color:rgb(106, 153, 85);--theme-ui-colors-builtin-color:rgb(86, 156, 214);--theme-ui-colors-changed-color:rgb(86, 156, 214);--theme-ui-colors-keyword-color:rgb(86, 156, 214);--theme-ui-colors-interpolation-punctuation-color:rgb(86, 156, 214);--theme-ui-colors-number-color:rgb(181, 206, 168);--theme-ui-colors-inserted-color:rgb(181, 206, 168);--theme-ui-colors-constant-color:rgb(100, 102, 149);--theme-ui-colors-attr-name-color:rgb(156, 220, 254);--theme-ui-colors-variable-color:rgb(156, 220, 254);--theme-ui-colors-deleted-color:rgb(206, 145, 120);--theme-ui-colors-string-color:rgb(206, 145, 120);--theme-ui-colors-attr-value-color:rgb(206, 145, 120);--theme-ui-colors-template-punctuation-color:rgb(206, 145, 120);--theme-ui-colors-selector-color:rgb(215, 186, 125);--theme-ui-colors-tag-color:rgb(86, 156, 214);--theme-ui-colors-punctuation-color:#808080;--theme-ui-colors-operator-color:rgb(212, 212, 212);--theme-ui-colors-function-color:rgb(220, 220, 170);--theme-ui-colors-class-name-color:rgb(78, 201, 176);--theme-ui-colors-char-color:rgb(209, 105, 105);--theme-ui-colors-highlight:#28292a;--theme-ui-colors-text:#e3e3e3;--theme-ui-colors-primary:#c084fc;--theme-ui-colors-secondary:#8a9ab0;--theme-ui-colors-toggleIcon:#9ca3af;--theme-ui-colors-heading:#fff;--theme-ui-colors-divide:#1f2937;--theme-ui-colors-muted:#1f2937;--theme-ui-colors-highlightLineBg:rgba(255, 255, 255, 0.1);--theme-ui-colors-background:#1f1f1f;}html.theme-ui-light,.theme-ui-light html{--theme-ui-colors-plain-color:#393A34;--theme-ui-colors-plain-backgroundColor:#f8fafd;--theme-ui-colors-comment-color:#999988;--theme-ui-colors-comment-fontStyle:italic;--theme-ui-colors-prolog-color:#999988;--theme-ui-colors-prolog-fontStyle:italic;--theme-ui-colors-doctype-color:#999988;--theme-ui-colors-doctype-fontStyle:italic;--theme-ui-colors-cdata-color:#999988;--theme-ui-colors-cdata-fontStyle:italic;--theme-ui-colors-namespace-opacity:0.7;--theme-ui-colors-string-color:#e3116c;--theme-ui-colors-attr-value-color:#e3116c;--theme-ui-colors-punctuation-color:#393A34;--theme-ui-colors-operator-color:#393A34;--theme-ui-colors-entity-color:#36acaa;--theme-ui-colors-url-color:#36acaa;--theme-ui-colors-symbol-color:#36acaa;--theme-ui-colors-number-color:#36acaa;--theme-ui-colors-boolean-color:#36acaa;--theme-ui-colors-variable-color:#36acaa;--theme-ui-colors-constant-color:#36acaa;--theme-ui-colors-property-color:#36acaa;--theme-ui-colors-regex-color:#36acaa;--theme-ui-colors-inserted-color:#36acaa;--theme-ui-colors-atrule-color:#00a4db;--theme-ui-colors-keyword-color:#00009f;--theme-ui-colors-attr-name-color:#00a4db;--theme-ui-colors-selector-color:#00009f;--theme-ui-colors-function-color:#d73a49;--theme-ui-colors-deleted-color:#d73a49;--theme-ui-colors-tag-color:#00009f;--theme-ui-colors-function-variable-color:#6f42c1;--theme-ui-colors-highlight:#e2e8f0;--theme-ui-colors-text:#000;--theme-ui-colors-primary:#7e22ce;--theme-ui-colors-secondary:#5f6c80;--theme-ui-colors-toggleIcon:#1f2937;--theme-ui-colors-heading:#000;--theme-ui-colors-divide:#9ca3af;--theme-ui-colors-muted:#e5e7eb;--theme-ui-colors-highlightLineBg:rgba(0, 0, 0, 0.035);--theme-ui-colors-background:#fff;}</style><style data-emotion="css-global oiq1hr" data-gatsby-head="true">*{box-sizing:border-box;}html{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.625;font-weight:400;color:var(--theme-ui-colors-text);background-color:var(--theme-ui-colors-background);margin:0;padding:0;box-sizing:border-box;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;}html img{border-style:none;}html pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;}html a{-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;color:var(--theme-ui-colors-text);}body{margin:0;}</style><title data-gatsby-head="true">书签 | MQ Blog</title><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" data-gatsby-head="true"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" data-gatsby-head="true"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" data-gatsby-head="true"/></head><body><script>(function() { try {
  var mode = localStorage.getItem('theme-ui-color-mode');
  if (!mode) return
  document.documentElement.classList.add('theme-ui-' + mode);
} catch (e) {} })();</script><div id="___gatsby"><style data-emotion="css-global 1bif9id">html{--theme-ui-colors-transparent:transparent;--theme-ui-colors-black:#000;--theme-ui-colors-white:#fff;--theme-ui-colors-slate-0:#f8fafc;--theme-ui-colors-slate-1:#f1f5f9;--theme-ui-colors-slate-2:#e2e8f0;--theme-ui-colors-slate-3:#cbd5e1;--theme-ui-colors-slate-4:#94a3b8;--theme-ui-colors-slate-5:#64748b;--theme-ui-colors-slate-6:#475569;--theme-ui-colors-slate-7:#334155;--theme-ui-colors-slate-8:#1e293b;--theme-ui-colors-slate-9:#0f172a;--theme-ui-colors-gray-0:#f9fafb;--theme-ui-colors-gray-1:#f3f4f6;--theme-ui-colors-gray-2:#e5e7eb;--theme-ui-colors-gray-3:#d1d5db;--theme-ui-colors-gray-4:#9ca3af;--theme-ui-colors-gray-5:#6b7280;--theme-ui-colors-gray-6:#4b5563;--theme-ui-colors-gray-7:#374151;--theme-ui-colors-gray-8:#1f2937;--theme-ui-colors-gray-9:#111827;--theme-ui-colors-zinc-0:#fafafa;--theme-ui-colors-zinc-1:#f4f4f5;--theme-ui-colors-zinc-2:#e4e4e7;--theme-ui-colors-zinc-3:#d4d4d8;--theme-ui-colors-zinc-4:#a1a1aa;--theme-ui-colors-zinc-5:#71717a;--theme-ui-colors-zinc-6:#52525b;--theme-ui-colors-zinc-7:#3f3f46;--theme-ui-colors-zinc-8:#27272a;--theme-ui-colors-zinc-9:#18181b;--theme-ui-colors-neutral-0:#fafafa;--theme-ui-colors-neutral-1:#f5f5f5;--theme-ui-colors-neutral-2:#e5e5e5;--theme-ui-colors-neutral-3:#d4d4d4;--theme-ui-colors-neutral-4:#a3a3a3;--theme-ui-colors-neutral-5:#737373;--theme-ui-colors-neutral-6:#525252;--theme-ui-colors-neutral-7:#404040;--theme-ui-colors-neutral-8:#262626;--theme-ui-colors-neutral-9:#171717;--theme-ui-colors-stone-0:#fafaf9;--theme-ui-colors-stone-1:#f5f5f4;--theme-ui-colors-stone-2:#e7e5e4;--theme-ui-colors-stone-3:#d6d3d1;--theme-ui-colors-stone-4:#a8a29e;--theme-ui-colors-stone-5:#78716c;--theme-ui-colors-stone-6:#57534e;--theme-ui-colors-stone-7:#44403c;--theme-ui-colors-stone-8:#292524;--theme-ui-colors-stone-9:#1c1917;--theme-ui-colors-red-0:#fef2f2;--theme-ui-colors-red-1:#fee2e2;--theme-ui-colors-red-2:#fecaca;--theme-ui-colors-red-3:#fca5a5;--theme-ui-colors-red-4:#f87171;--theme-ui-colors-red-5:#ef4444;--theme-ui-colors-red-6:#dc2626;--theme-ui-colors-red-7:#b91c1c;--theme-ui-colors-red-8:#991b1b;--theme-ui-colors-red-9:#7f1d1d;--theme-ui-colors-orange-0:#fff7ed;--theme-ui-colors-orange-1:#ffedd5;--theme-ui-colors-orange-2:#fed7aa;--theme-ui-colors-orange-3:#fdba74;--theme-ui-colors-orange-4:#fb923c;--theme-ui-colors-orange-5:#f97316;--theme-ui-colors-orange-6:#ea580c;--theme-ui-colors-orange-7:#c2410c;--theme-ui-colors-orange-8:#9a3412;--theme-ui-colors-orange-9:#7c2d12;--theme-ui-colors-amber-0:#fffbeb;--theme-ui-colors-amber-1:#fef3c7;--theme-ui-colors-amber-2:#fde68a;--theme-ui-colors-amber-3:#fcd34d;--theme-ui-colors-amber-4:#fbbf24;--theme-ui-colors-amber-5:#f59e0b;--theme-ui-colors-amber-6:#d97706;--theme-ui-colors-amber-7:#b45309;--theme-ui-colors-amber-8:#92400e;--theme-ui-colors-amber-9:#78350f;--theme-ui-colors-yellow-0:#fefce8;--theme-ui-colors-yellow-1:#fef9c3;--theme-ui-colors-yellow-2:#fef08a;--theme-ui-colors-yellow-3:#fde047;--theme-ui-colors-yellow-4:#facc15;--theme-ui-colors-yellow-5:#eab308;--theme-ui-colors-yellow-6:#ca8a04;--theme-ui-colors-yellow-7:#a16207;--theme-ui-colors-yellow-8:#854d0e;--theme-ui-colors-yellow-9:#713f12;--theme-ui-colors-lime-0:#f7fee7;--theme-ui-colors-lime-1:#ecfccb;--theme-ui-colors-lime-2:#d9f99d;--theme-ui-colors-lime-3:#bef264;--theme-ui-colors-lime-4:#a3e635;--theme-ui-colors-lime-5:#84cc16;--theme-ui-colors-lime-6:#65a30d;--theme-ui-colors-lime-7:#4d7c0f;--theme-ui-colors-lime-8:#3f6212;--theme-ui-colors-lime-9:#365314;--theme-ui-colors-green-0:#f0fdf4;--theme-ui-colors-green-1:#dcfce7;--theme-ui-colors-green-2:#bbf7d0;--theme-ui-colors-green-3:#86efac;--theme-ui-colors-green-4:#4ade80;--theme-ui-colors-green-5:#22c55e;--theme-ui-colors-green-6:#16a34a;--theme-ui-colors-green-7:#15803d;--theme-ui-colors-green-8:#166534;--theme-ui-colors-green-9:#14532d;--theme-ui-colors-emerald-0:#ecfdf5;--theme-ui-colors-emerald-1:#d1fae5;--theme-ui-colors-emerald-2:#a7f3d0;--theme-ui-colors-emerald-3:#6ee7b7;--theme-ui-colors-emerald-4:#34d399;--theme-ui-colors-emerald-5:#10b981;--theme-ui-colors-emerald-6:#059669;--theme-ui-colors-emerald-7:#047857;--theme-ui-colors-emerald-8:#065f46;--theme-ui-colors-emerald-9:#064e3b;--theme-ui-colors-teal-0:#f0fdfa;--theme-ui-colors-teal-1:#ccfbf1;--theme-ui-colors-teal-2:#99f6e4;--theme-ui-colors-teal-3:#5eead4;--theme-ui-colors-teal-4:#2dd4bf;--theme-ui-colors-teal-5:#14b8a6;--theme-ui-colors-teal-6:#0d9488;--theme-ui-colors-teal-7:#0f766e;--theme-ui-colors-teal-8:#115e59;--theme-ui-colors-teal-9:#134e4a;--theme-ui-colors-cyan-0:#ecfeff;--theme-ui-colors-cyan-1:#cffafe;--theme-ui-colors-cyan-2:#a5f3fc;--theme-ui-colors-cyan-3:#67e8f9;--theme-ui-colors-cyan-4:#22d3ee;--theme-ui-colors-cyan-5:#06b6d4;--theme-ui-colors-cyan-6:#0891b2;--theme-ui-colors-cyan-7:#0e7490;--theme-ui-colors-cyan-8:#155e75;--theme-ui-colors-cyan-9:#164e63;--theme-ui-colors-sky-0:#f0f9ff;--theme-ui-colors-sky-1:#e0f2fe;--theme-ui-colors-sky-2:#bae6fd;--theme-ui-colors-sky-3:#7dd3fc;--theme-ui-colors-sky-4:#38bdf8;--theme-ui-colors-sky-5:#0ea5e9;--theme-ui-colors-sky-6:#0284c7;--theme-ui-colors-sky-7:#0369a1;--theme-ui-colors-sky-8:#075985;--theme-ui-colors-sky-9:#0c4a6e;--theme-ui-colors-blue-0:#eff6ff;--theme-ui-colors-blue-1:#dbeafe;--theme-ui-colors-blue-2:#bfdbfe;--theme-ui-colors-blue-3:#93c5fd;--theme-ui-colors-blue-4:#60a5fa;--theme-ui-colors-blue-5:#3b82f6;--theme-ui-colors-blue-6:#2563eb;--theme-ui-colors-blue-7:#1d4ed8;--theme-ui-colors-blue-8:#1e40af;--theme-ui-colors-blue-9:#1e3a8a;--theme-ui-colors-indigo-0:#eef2ff;--theme-ui-colors-indigo-1:#e0e7ff;--theme-ui-colors-indigo-2:#c7d2fe;--theme-ui-colors-indigo-3:#a5b4fc;--theme-ui-colors-indigo-4:#818cf8;--theme-ui-colors-indigo-5:#6366f1;--theme-ui-colors-indigo-6:#4f46e5;--theme-ui-colors-indigo-7:#4338ca;--theme-ui-colors-indigo-8:#3730a3;--theme-ui-colors-indigo-9:#312e81;--theme-ui-colors-violet-0:#f5f3ff;--theme-ui-colors-violet-1:#ede9fe;--theme-ui-colors-violet-2:#ddd6fe;--theme-ui-colors-violet-3:#c4b5fd;--theme-ui-colors-violet-4:#a78bfa;--theme-ui-colors-violet-5:#8b5cf6;--theme-ui-colors-violet-6:#7c3aed;--theme-ui-colors-violet-7:#6d28d9;--theme-ui-colors-violet-8:#5b21b6;--theme-ui-colors-violet-9:#4c1d95;--theme-ui-colors-purple-0:#faf5ff;--theme-ui-colors-purple-1:#f3e8ff;--theme-ui-colors-purple-2:#e9d5ff;--theme-ui-colors-purple-3:#d8b4fe;--theme-ui-colors-purple-4:#c084fc;--theme-ui-colors-purple-5:#a855f7;--theme-ui-colors-purple-6:#9333ea;--theme-ui-colors-purple-7:#7e22ce;--theme-ui-colors-purple-8:#6b21a8;--theme-ui-colors-purple-9:#581c87;--theme-ui-colors-fuchsia-0:#fdf4ff;--theme-ui-colors-fuchsia-1:#fae8ff;--theme-ui-colors-fuchsia-2:#f5d0fe;--theme-ui-colors-fuchsia-3:#f0abfc;--theme-ui-colors-fuchsia-4:#e879f9;--theme-ui-colors-fuchsia-5:#d946ef;--theme-ui-colors-fuchsia-6:#c026d3;--theme-ui-colors-fuchsia-7:#a21caf;--theme-ui-colors-fuchsia-8:#86198f;--theme-ui-colors-fuchsia-9:#701a75;--theme-ui-colors-pink-0:#fdf2f8;--theme-ui-colors-pink-1:#fce7f3;--theme-ui-colors-pink-2:#fbcfe8;--theme-ui-colors-pink-3:#f9a8d4;--theme-ui-colors-pink-4:#f472b6;--theme-ui-colors-pink-5:#ec4899;--theme-ui-colors-pink-6:#db2777;--theme-ui-colors-pink-7:#be185d;--theme-ui-colors-pink-8:#9d174d;--theme-ui-colors-pink-9:#831843;--theme-ui-colors-rose-0:#fff1f2;--theme-ui-colors-rose-1:#ffe4e6;--theme-ui-colors-rose-2:#fecdd3;--theme-ui-colors-rose-3:#fda4af;--theme-ui-colors-rose-4:#fb7185;--theme-ui-colors-rose-5:#f43f5e;--theme-ui-colors-rose-6:#e11d48;--theme-ui-colors-rose-7:#be123c;--theme-ui-colors-rose-8:#9f1239;--theme-ui-colors-rose-9:#881337;--theme-ui-colors-grayDark:#1f2937;--theme-ui-colors-text:#1f2937;--theme-ui-colors-background:#fff;--theme-ui-colors-primary:#1d4ed8;--theme-ui-colors-primaryHover:#1e40af;--theme-ui-colors-secondary:#4b5563;--theme-ui-colors-muted:#d1d5db;--theme-ui-colors-success:#86efac;--theme-ui-colors-info:#60a5fa;--theme-ui-colors-warning:#fde047;--theme-ui-colors-danger:#fca5a5;--theme-ui-colors-light:#f3f4f6;--theme-ui-colors-dark:#1f2937;--theme-ui-colors-textMuted:#4b5563;--theme-ui-colors-plain-color:#393A34;--theme-ui-colors-plain-backgroundColor:#f6f8fa;--theme-ui-colors-comment-color:#999988;--theme-ui-colors-comment-fontStyle:italic;--theme-ui-colors-prolog-color:#999988;--theme-ui-colors-prolog-fontStyle:italic;--theme-ui-colors-doctype-color:#999988;--theme-ui-colors-doctype-fontStyle:italic;--theme-ui-colors-cdata-color:#999988;--theme-ui-colors-cdata-fontStyle:italic;--theme-ui-colors-namespace-opacity:0.7;--theme-ui-colors-string-color:#e3116c;--theme-ui-colors-attr-value-color:#e3116c;--theme-ui-colors-punctuation-color:#393A34;--theme-ui-colors-operator-color:#393A34;--theme-ui-colors-entity-color:#36acaa;--theme-ui-colors-url-color:#36acaa;--theme-ui-colors-symbol-color:#36acaa;--theme-ui-colors-number-color:#36acaa;--theme-ui-colors-boolean-color:#36acaa;--theme-ui-colors-variable-color:#36acaa;--theme-ui-colors-constant-color:#36acaa;--theme-ui-colors-property-color:#36acaa;--theme-ui-colors-regex-color:#36acaa;--theme-ui-colors-inserted-color:#36acaa;--theme-ui-colors-atrule-color:#00a4db;--theme-ui-colors-keyword-color:#00009f;--theme-ui-colors-attr-name-color:#00a4db;--theme-ui-colors-selector-color:#00009f;--theme-ui-colors-function-color:#d73a49;--theme-ui-colors-deleted-color:#d73a49;--theme-ui-colors-tag-color:#00009f;--theme-ui-colors-function-variable-color:#6f42c1;--theme-ui-colors-toggleIcon:#1f2937;--theme-ui-colors-heading:#000;--theme-ui-colors-highlight:#28292a;color:var(--theme-ui-colors-text);background-color:var(--theme-ui-colors-background);}html.theme-ui-__default,.theme-ui-__default html{--theme-ui-colors-transparent:transparent;--theme-ui-colors-black:#000;--theme-ui-colors-white:#fff;--theme-ui-colors-slate-0:#f8fafc;--theme-ui-colors-slate-1:#f1f5f9;--theme-ui-colors-slate-2:#e2e8f0;--theme-ui-colors-slate-3:#cbd5e1;--theme-ui-colors-slate-4:#94a3b8;--theme-ui-colors-slate-5:#64748b;--theme-ui-colors-slate-6:#475569;--theme-ui-colors-slate-7:#334155;--theme-ui-colors-slate-8:#1e293b;--theme-ui-colors-slate-9:#0f172a;--theme-ui-colors-gray-0:#f9fafb;--theme-ui-colors-gray-1:#f3f4f6;--theme-ui-colors-gray-2:#e5e7eb;--theme-ui-colors-gray-3:#d1d5db;--theme-ui-colors-gray-4:#9ca3af;--theme-ui-colors-gray-5:#6b7280;--theme-ui-colors-gray-6:#4b5563;--theme-ui-colors-gray-7:#374151;--theme-ui-colors-gray-8:#1f2937;--theme-ui-colors-gray-9:#111827;--theme-ui-colors-zinc-0:#fafafa;--theme-ui-colors-zinc-1:#f4f4f5;--theme-ui-colors-zinc-2:#e4e4e7;--theme-ui-colors-zinc-3:#d4d4d8;--theme-ui-colors-zinc-4:#a1a1aa;--theme-ui-colors-zinc-5:#71717a;--theme-ui-colors-zinc-6:#52525b;--theme-ui-colors-zinc-7:#3f3f46;--theme-ui-colors-zinc-8:#27272a;--theme-ui-colors-zinc-9:#18181b;--theme-ui-colors-neutral-0:#fafafa;--theme-ui-colors-neutral-1:#f5f5f5;--theme-ui-colors-neutral-2:#e5e5e5;--theme-ui-colors-neutral-3:#d4d4d4;--theme-ui-colors-neutral-4:#a3a3a3;--theme-ui-colors-neutral-5:#737373;--theme-ui-colors-neutral-6:#525252;--theme-ui-colors-neutral-7:#404040;--theme-ui-colors-neutral-8:#262626;--theme-ui-colors-neutral-9:#171717;--theme-ui-colors-stone-0:#fafaf9;--theme-ui-colors-stone-1:#f5f5f4;--theme-ui-colors-stone-2:#e7e5e4;--theme-ui-colors-stone-3:#d6d3d1;--theme-ui-colors-stone-4:#a8a29e;--theme-ui-colors-stone-5:#78716c;--theme-ui-colors-stone-6:#57534e;--theme-ui-colors-stone-7:#44403c;--theme-ui-colors-stone-8:#292524;--theme-ui-colors-stone-9:#1c1917;--theme-ui-colors-red-0:#fef2f2;--theme-ui-colors-red-1:#fee2e2;--theme-ui-colors-red-2:#fecaca;--theme-ui-colors-red-3:#fca5a5;--theme-ui-colors-red-4:#f87171;--theme-ui-colors-red-5:#ef4444;--theme-ui-colors-red-6:#dc2626;--theme-ui-colors-red-7:#b91c1c;--theme-ui-colors-red-8:#991b1b;--theme-ui-colors-red-9:#7f1d1d;--theme-ui-colors-orange-0:#fff7ed;--theme-ui-colors-orange-1:#ffedd5;--theme-ui-colors-orange-2:#fed7aa;--theme-ui-colors-orange-3:#fdba74;--theme-ui-colors-orange-4:#fb923c;--theme-ui-colors-orange-5:#f97316;--theme-ui-colors-orange-6:#ea580c;--theme-ui-colors-orange-7:#c2410c;--theme-ui-colors-orange-8:#9a3412;--theme-ui-colors-orange-9:#7c2d12;--theme-ui-colors-amber-0:#fffbeb;--theme-ui-colors-amber-1:#fef3c7;--theme-ui-colors-amber-2:#fde68a;--theme-ui-colors-amber-3:#fcd34d;--theme-ui-colors-amber-4:#fbbf24;--theme-ui-colors-amber-5:#f59e0b;--theme-ui-colors-amber-6:#d97706;--theme-ui-colors-amber-7:#b45309;--theme-ui-colors-amber-8:#92400e;--theme-ui-colors-amber-9:#78350f;--theme-ui-colors-yellow-0:#fefce8;--theme-ui-colors-yellow-1:#fef9c3;--theme-ui-colors-yellow-2:#fef08a;--theme-ui-colors-yellow-3:#fde047;--theme-ui-colors-yellow-4:#facc15;--theme-ui-colors-yellow-5:#eab308;--theme-ui-colors-yellow-6:#ca8a04;--theme-ui-colors-yellow-7:#a16207;--theme-ui-colors-yellow-8:#854d0e;--theme-ui-colors-yellow-9:#713f12;--theme-ui-colors-lime-0:#f7fee7;--theme-ui-colors-lime-1:#ecfccb;--theme-ui-colors-lime-2:#d9f99d;--theme-ui-colors-lime-3:#bef264;--theme-ui-colors-lime-4:#a3e635;--theme-ui-colors-lime-5:#84cc16;--theme-ui-colors-lime-6:#65a30d;--theme-ui-colors-lime-7:#4d7c0f;--theme-ui-colors-lime-8:#3f6212;--theme-ui-colors-lime-9:#365314;--theme-ui-colors-green-0:#f0fdf4;--theme-ui-colors-green-1:#dcfce7;--theme-ui-colors-green-2:#bbf7d0;--theme-ui-colors-green-3:#86efac;--theme-ui-colors-green-4:#4ade80;--theme-ui-colors-green-5:#22c55e;--theme-ui-colors-green-6:#16a34a;--theme-ui-colors-green-7:#15803d;--theme-ui-colors-green-8:#166534;--theme-ui-colors-green-9:#14532d;--theme-ui-colors-emerald-0:#ecfdf5;--theme-ui-colors-emerald-1:#d1fae5;--theme-ui-colors-emerald-2:#a7f3d0;--theme-ui-colors-emerald-3:#6ee7b7;--theme-ui-colors-emerald-4:#34d399;--theme-ui-colors-emerald-5:#10b981;--theme-ui-colors-emerald-6:#059669;--theme-ui-colors-emerald-7:#047857;--theme-ui-colors-emerald-8:#065f46;--theme-ui-colors-emerald-9:#064e3b;--theme-ui-colors-teal-0:#f0fdfa;--theme-ui-colors-teal-1:#ccfbf1;--theme-ui-colors-teal-2:#99f6e4;--theme-ui-colors-teal-3:#5eead4;--theme-ui-colors-teal-4:#2dd4bf;--theme-ui-colors-teal-5:#14b8a6;--theme-ui-colors-teal-6:#0d9488;--theme-ui-colors-teal-7:#0f766e;--theme-ui-colors-teal-8:#115e59;--theme-ui-colors-teal-9:#134e4a;--theme-ui-colors-cyan-0:#ecfeff;--theme-ui-colors-cyan-1:#cffafe;--theme-ui-colors-cyan-2:#a5f3fc;--theme-ui-colors-cyan-3:#67e8f9;--theme-ui-colors-cyan-4:#22d3ee;--theme-ui-colors-cyan-5:#06b6d4;--theme-ui-colors-cyan-6:#0891b2;--theme-ui-colors-cyan-7:#0e7490;--theme-ui-colors-cyan-8:#155e75;--theme-ui-colors-cyan-9:#164e63;--theme-ui-colors-sky-0:#f0f9ff;--theme-ui-colors-sky-1:#e0f2fe;--theme-ui-colors-sky-2:#bae6fd;--theme-ui-colors-sky-3:#7dd3fc;--theme-ui-colors-sky-4:#38bdf8;--theme-ui-colors-sky-5:#0ea5e9;--theme-ui-colors-sky-6:#0284c7;--theme-ui-colors-sky-7:#0369a1;--theme-ui-colors-sky-8:#075985;--theme-ui-colors-sky-9:#0c4a6e;--theme-ui-colors-blue-0:#eff6ff;--theme-ui-colors-blue-1:#dbeafe;--theme-ui-colors-blue-2:#bfdbfe;--theme-ui-colors-blue-3:#93c5fd;--theme-ui-colors-blue-4:#60a5fa;--theme-ui-colors-blue-5:#3b82f6;--theme-ui-colors-blue-6:#2563eb;--theme-ui-colors-blue-7:#1d4ed8;--theme-ui-colors-blue-8:#1e40af;--theme-ui-colors-blue-9:#1e3a8a;--theme-ui-colors-indigo-0:#eef2ff;--theme-ui-colors-indigo-1:#e0e7ff;--theme-ui-colors-indigo-2:#c7d2fe;--theme-ui-colors-indigo-3:#a5b4fc;--theme-ui-colors-indigo-4:#818cf8;--theme-ui-colors-indigo-5:#6366f1;--theme-ui-colors-indigo-6:#4f46e5;--theme-ui-colors-indigo-7:#4338ca;--theme-ui-colors-indigo-8:#3730a3;--theme-ui-colors-indigo-9:#312e81;--theme-ui-colors-violet-0:#f5f3ff;--theme-ui-colors-violet-1:#ede9fe;--theme-ui-colors-violet-2:#ddd6fe;--theme-ui-colors-violet-3:#c4b5fd;--theme-ui-colors-violet-4:#a78bfa;--theme-ui-colors-violet-5:#8b5cf6;--theme-ui-colors-violet-6:#7c3aed;--theme-ui-colors-violet-7:#6d28d9;--theme-ui-colors-violet-8:#5b21b6;--theme-ui-colors-violet-9:#4c1d95;--theme-ui-colors-purple-0:#faf5ff;--theme-ui-colors-purple-1:#f3e8ff;--theme-ui-colors-purple-2:#e9d5ff;--theme-ui-colors-purple-3:#d8b4fe;--theme-ui-colors-purple-4:#c084fc;--theme-ui-colors-purple-5:#a855f7;--theme-ui-colors-purple-6:#9333ea;--theme-ui-colors-purple-7:#7e22ce;--theme-ui-colors-purple-8:#6b21a8;--theme-ui-colors-purple-9:#581c87;--theme-ui-colors-fuchsia-0:#fdf4ff;--theme-ui-colors-fuchsia-1:#fae8ff;--theme-ui-colors-fuchsia-2:#f5d0fe;--theme-ui-colors-fuchsia-3:#f0abfc;--theme-ui-colors-fuchsia-4:#e879f9;--theme-ui-colors-fuchsia-5:#d946ef;--theme-ui-colors-fuchsia-6:#c026d3;--theme-ui-colors-fuchsia-7:#a21caf;--theme-ui-colors-fuchsia-8:#86198f;--theme-ui-colors-fuchsia-9:#701a75;--theme-ui-colors-pink-0:#fdf2f8;--theme-ui-colors-pink-1:#fce7f3;--theme-ui-colors-pink-2:#fbcfe8;--theme-ui-colors-pink-3:#f9a8d4;--theme-ui-colors-pink-4:#f472b6;--theme-ui-colors-pink-5:#ec4899;--theme-ui-colors-pink-6:#db2777;--theme-ui-colors-pink-7:#be185d;--theme-ui-colors-pink-8:#9d174d;--theme-ui-colors-pink-9:#831843;--theme-ui-colors-rose-0:#fff1f2;--theme-ui-colors-rose-1:#ffe4e6;--theme-ui-colors-rose-2:#fecdd3;--theme-ui-colors-rose-3:#fda4af;--theme-ui-colors-rose-4:#fb7185;--theme-ui-colors-rose-5:#f43f5e;--theme-ui-colors-rose-6:#e11d48;--theme-ui-colors-rose-7:#be123c;--theme-ui-colors-rose-8:#9f1239;--theme-ui-colors-rose-9:#881337;--theme-ui-colors-grayDark:#1f2937;--theme-ui-colors-text:#1f2937;--theme-ui-colors-background:#fff;--theme-ui-colors-primary:#1d4ed8;--theme-ui-colors-primaryHover:#1e40af;--theme-ui-colors-secondary:#4b5563;--theme-ui-colors-muted:#d1d5db;--theme-ui-colors-success:#86efac;--theme-ui-colors-info:#60a5fa;--theme-ui-colors-warning:#fde047;--theme-ui-colors-danger:#fca5a5;--theme-ui-colors-light:#f3f4f6;--theme-ui-colors-dark:#1f2937;--theme-ui-colors-textMuted:#4b5563;--theme-ui-colors-plain-color:#393A34;--theme-ui-colors-plain-backgroundColor:#f6f8fa;--theme-ui-colors-comment-color:#999988;--theme-ui-colors-comment-fontStyle:italic;--theme-ui-colors-prolog-color:#999988;--theme-ui-colors-prolog-fontStyle:italic;--theme-ui-colors-doctype-color:#999988;--theme-ui-colors-doctype-fontStyle:italic;--theme-ui-colors-cdata-color:#999988;--theme-ui-colors-cdata-fontStyle:italic;--theme-ui-colors-namespace-opacity:0.7;--theme-ui-colors-string-color:#e3116c;--theme-ui-colors-attr-value-color:#e3116c;--theme-ui-colors-punctuation-color:#393A34;--theme-ui-colors-operator-color:#393A34;--theme-ui-colors-entity-color:#36acaa;--theme-ui-colors-url-color:#36acaa;--theme-ui-colors-symbol-color:#36acaa;--theme-ui-colors-number-color:#36acaa;--theme-ui-colors-boolean-color:#36acaa;--theme-ui-colors-variable-color:#36acaa;--theme-ui-colors-constant-color:#36acaa;--theme-ui-colors-property-color:#36acaa;--theme-ui-colors-regex-color:#36acaa;--theme-ui-colors-inserted-color:#36acaa;--theme-ui-colors-atrule-color:#00a4db;--theme-ui-colors-keyword-color:#00009f;--theme-ui-colors-attr-name-color:#00a4db;--theme-ui-colors-selector-color:#00009f;--theme-ui-colors-function-color:#d73a49;--theme-ui-colors-deleted-color:#d73a49;--theme-ui-colors-tag-color:#00009f;--theme-ui-colors-function-variable-color:#6f42c1;--theme-ui-colors-toggleIcon:#1f2937;--theme-ui-colors-heading:#000;--theme-ui-colors-highlight:#28292a;}html.theme-ui-dark,.theme-ui-dark html{--theme-ui-colors-plain-color:#9CDCFE;--theme-ui-colors-plain-backgroundColor:#28292a;--theme-ui-colors-prolog-color:rgb(0, 0, 128);--theme-ui-colors-comment-color:rgb(106, 153, 85);--theme-ui-colors-builtin-color:rgb(86, 156, 214);--theme-ui-colors-changed-color:rgb(86, 156, 214);--theme-ui-colors-keyword-color:rgb(86, 156, 214);--theme-ui-colors-interpolation-punctuation-color:rgb(86, 156, 214);--theme-ui-colors-number-color:rgb(181, 206, 168);--theme-ui-colors-inserted-color:rgb(181, 206, 168);--theme-ui-colors-constant-color:rgb(100, 102, 149);--theme-ui-colors-attr-name-color:rgb(156, 220, 254);--theme-ui-colors-variable-color:rgb(156, 220, 254);--theme-ui-colors-deleted-color:rgb(206, 145, 120);--theme-ui-colors-string-color:rgb(206, 145, 120);--theme-ui-colors-attr-value-color:rgb(206, 145, 120);--theme-ui-colors-template-punctuation-color:rgb(206, 145, 120);--theme-ui-colors-selector-color:rgb(215, 186, 125);--theme-ui-colors-tag-color:rgb(86, 156, 214);--theme-ui-colors-punctuation-color:#808080;--theme-ui-colors-operator-color:rgb(212, 212, 212);--theme-ui-colors-function-color:rgb(220, 220, 170);--theme-ui-colors-class-name-color:rgb(78, 201, 176);--theme-ui-colors-char-color:rgb(209, 105, 105);--theme-ui-colors-highlight:#28292a;--theme-ui-colors-text:#e3e3e3;--theme-ui-colors-primary:#c084fc;--theme-ui-colors-secondary:#8a9ab0;--theme-ui-colors-toggleIcon:#9ca3af;--theme-ui-colors-heading:#fff;--theme-ui-colors-divide:#1f2937;--theme-ui-colors-muted:#1f2937;--theme-ui-colors-highlightLineBg:rgba(255, 255, 255, 0.1);--theme-ui-colors-background:#1f1f1f;}html.theme-ui-light,.theme-ui-light html{--theme-ui-colors-plain-color:#393A34;--theme-ui-colors-plain-backgroundColor:#f8fafd;--theme-ui-colors-comment-color:#999988;--theme-ui-colors-comment-fontStyle:italic;--theme-ui-colors-prolog-color:#999988;--theme-ui-colors-prolog-fontStyle:italic;--theme-ui-colors-doctype-color:#999988;--theme-ui-colors-doctype-fontStyle:italic;--theme-ui-colors-cdata-color:#999988;--theme-ui-colors-cdata-fontStyle:italic;--theme-ui-colors-namespace-opacity:0.7;--theme-ui-colors-string-color:#e3116c;--theme-ui-colors-attr-value-color:#e3116c;--theme-ui-colors-punctuation-color:#393A34;--theme-ui-colors-operator-color:#393A34;--theme-ui-colors-entity-color:#36acaa;--theme-ui-colors-url-color:#36acaa;--theme-ui-colors-symbol-color:#36acaa;--theme-ui-colors-number-color:#36acaa;--theme-ui-colors-boolean-color:#36acaa;--theme-ui-colors-variable-color:#36acaa;--theme-ui-colors-constant-color:#36acaa;--theme-ui-colors-property-color:#36acaa;--theme-ui-colors-regex-color:#36acaa;--theme-ui-colors-inserted-color:#36acaa;--theme-ui-colors-atrule-color:#00a4db;--theme-ui-colors-keyword-color:#00009f;--theme-ui-colors-attr-name-color:#00a4db;--theme-ui-colors-selector-color:#00009f;--theme-ui-colors-function-color:#d73a49;--theme-ui-colors-deleted-color:#d73a49;--theme-ui-colors-tag-color:#00009f;--theme-ui-colors-function-variable-color:#6f42c1;--theme-ui-colors-highlight:#e2e8f0;--theme-ui-colors-text:#000;--theme-ui-colors-primary:#7e22ce;--theme-ui-colors-secondary:#5f6c80;--theme-ui-colors-toggleIcon:#1f2937;--theme-ui-colors-heading:#000;--theme-ui-colors-divide:#9ca3af;--theme-ui-colors-muted:#e5e7eb;--theme-ui-colors-highlightLineBg:rgba(0, 0, 0, 0.035);--theme-ui-colors-background:#fff;}</style><style data-emotion="css-global oiq1hr">*{box-sizing:border-box;}html{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.625;font-weight:400;color:var(--theme-ui-colors-text);background-color:var(--theme-ui-colors-background);margin:0;padding:0;box-sizing:border-box;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;}html img{border-style:none;}html pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;}html a{-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;color:var(--theme-ui-colors-text);}body{margin:0;}</style><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion="css-global cjr7z1">*{box-sizing:inherit;}[hidden]{display:none;}::selection{background-color:var(--theme-ui-colors-text);color:var(--theme-ui-colors-background);}</style><style data-emotion="css 1gq7j3t">.css-1gq7j3t{border:0;clip:react(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;overflow:hidden;position:absolute;}.css-1gq7j3t:focus{padding:1rem;position:fixed;top:15px;left:15px;background-color:var(--theme-ui-colors-heading);color:var(--theme-ui-colors-background);z-index:1;width:auto;height:auto;clip:auto;-webkit-text-decoration:none;text-decoration:none;}</style><a href="#skip-nav" data-skip-link="true" class="css-1gq7j3t">Skip to content</a><style data-emotion="css 1s59pbd">.css-1s59pbd{box-sizing:border-box;margin:0;min-width:0;width:100%;max-width:container;margin-left:auto;margin-right:auto;padding:1rem;max-width:1024px;}@media screen and (min-width: 640px){.css-1s59pbd{padding:2rem;}}</style><div class="css-1s59pbd"><style data-emotion="css fvifxy">.css-fvifxy{margin-bottom:1rem;}@media screen and (min-width: 640px){.css-fvifxy{margin-bottom:4rem;}}</style><header class="css-fvifxy"><style data-emotion="css 1xwyizx">.css-1xwyizx{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}</style><style data-emotion="css w86e33">.css-w86e33{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}</style><style data-emotion="css x80c29">.css-x80c29{box-sizing:border-box;margin:0;min-width:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}</style><div class="css-x80c29"><style data-emotion="css uxjqfw">.css-uxjqfw{color:var(--theme-ui-colors-heading);-webkit-text-decoration:none;text-decoration:none;}</style><a aria-label="MQ Blog - Back to home" class="css-uxjqfw" href="/"><style data-emotion="css mvgjiw">.css-mvgjiw{margin-top:0;margin-bottom:0;font-weight:600;font-size:1.5em;}@media screen and (min-width: 640px){.css-mvgjiw{font-size:1.875em;}}</style><div class="css-mvgjiw">MQ Blog</div></a><style data-emotion="css 3ba0x7">.css-3ba0x7{opacity:0.65;position:relative;border-radius:4px;width:40px;height:25px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease;border:none;outline:none;background:none;cursor:pointer;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;}.css-3ba0x7:hover,.css-3ba0x7:focus{opacity:1;}</style><button type="button" class="css-3ba0x7"><style data-emotion="css 1ggalm8">.css-1ggalm8{position:relative;width:24px;height:24px;border-radius:50%;-webkit-transition:all 0.45s ease;transition:all 0.45s ease;-webkit-transform:scale(0.55);-moz-transform:scale(0.55);-ms-transform:scale(0.55);transform:scale(0.55);}.css-1ggalm8:before{content:"";position:absolute;right:-9px;top:-9px;height:24px;width:24px;-webkit-transition:-webkit-transform 0.45s ease;transition:transform 0.45s ease;border-radius:50%;opacity:0;}.css-1ggalm8:after{content:"";width:8px;height:8px;border-radius:50%;margin:-4px 0 0 -4px;position:absolute;top:50%;left:50%;-webkit-transition:all 0.35s ease;transition:all 0.35s ease;box-shadow:0 -23px 0 var(--theme-ui-colors-toggleIcon),0 23px 0 var(--theme-ui-colors-toggleIcon),23px 0 0 var(--theme-ui-colors-toggleIcon),-23px 0 0 var(--theme-ui-colors-toggleIcon),15px 15px 0 var(--theme-ui-colors-toggleIcon),-15px 15px 0 var(--theme-ui-colors-toggleIcon),15px -15px 0 var(--theme-ui-colors-toggleIcon),-15px -15px 0 var(--theme-ui-colors-toggleIcon);-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);transform:scale(0);}</style><div class="css-1ggalm8"></div></button></div><style data-emotion="css lrg0i3">.css-lrg0i3{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:divide;padding-bottom:1rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:1rem;color:var(--theme-ui-colors-secondary);-webkit-box-flex-flow:wrap;-webkit-flex-flow:wrap;-ms-flex-flow:wrap;flex-flow:wrap;}.css-lrg0i3 a{color:var(--theme-ui-colors-secondary);}.css-lrg0i3 a:hover{color:var(--theme-ui-colors-heading);}</style><div class="css-lrg0i3"><style data-emotion="css 1y2r9kq">.css-1y2r9kq{font-size:1em;}.css-1y2r9kq a:not(:last-of-type){margin-right:1rem;}@media screen and (min-width: 640px){.css-1y2r9kq{font-size:1.25em;}}@media screen and (min-width: 768px){.css-1y2r9kq{font-size:1.25em;}}.css-1y2r9kq .active{color:var(--theme-ui-colors-heading);}</style><nav class="css-1y2r9kq"><style data-emotion="css bpdkdn">.css-bpdkdn{color:var(--theme-ui-colors-primary);-webkit-text-decoration:none;text-decoration:none;}.css-bpdkdn:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a class="css-bpdkdn" href="/blog">Blog</a><a aria-current="page" class="css-bpdkdn active" href="/bookmark">BookMark</a><a class="css-bpdkdn" href="/colors">Colors</a><a class="css-bpdkdn" href="/about">About</a></nav><style data-emotion="css lrtsq2">.css-lrtsq2{font-size:1em;}.css-lrtsq2 a:not(:first-of-type){margin-left:1rem;}@media screen and (min-width: 640px){.css-lrtsq2{font-size:1.25em;}}</style><div class="css-lrtsq2"><style data-emotion="css 1s8mmxz">.css-1s8mmxz{box-sizing:border-box;margin:0;min-width:0;color:var(--theme-ui-colors-primary);-webkit-text-decoration:none;text-decoration:none;}.css-1s8mmxz:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a href="https://github.com/mqjd" class="css-1s8mmxz">Github</a></div></div></header><style data-emotion="css 1c039qg">.css-1c039qg .prism-code{font-size:1em;webkit-overflow-scrolling:touch;background-color:var(--theme-ui-colors-transparent);min-width:100%;margin-bottom:0;margin-top:0;overflow:auto;}.css-1c039qg .prism-code[data-linenumber="false"] .token-line{padding-left:1rem;}.css-1c039qg .gatsby-highlight[data-language='none'] .code-content,.css-1c039qg .gatsby-highlight[data-language=''] .code-content{padding-top:1rem;}.css-1c039qg .code-content{padding:2rem 1rem 1rem 1rem;color:var(--theme-ui-colors-plain-color);background-color:var(--theme-ui-colors-plain-backgroundColor);}.css-1c039qg .token{display:inline-block;}.css-1c039qg p>code,.css-1c039qg li>code{background-color:var(--theme-ui-colors-muted);color:var(--theme-ui-colors-heading);padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;border-radius:4px;font-size:0.95em;}.css-1c039qg .gatsby-highlight{font-size:1.25em;position:relative;webkit-overflow-scrolling:touch;border-radius:4px;overflow:hidden;margin-left:0;margin-right:0;}@media screen and (min-width: 640px){.css-1c039qg .gatsby-highlight{font-size:1.25em;margin-left:0;margin-right:0;}}@media screen and (min-width: 768px){.css-1c039qg .gatsby-highlight{margin-left:0;margin-right:0;}}@media screen and (min-width: 1024px){.css-1c039qg .gatsby-highlight{margin-left:-1rem;margin-right:-1rem;}}.css-1c039qg .gatsby-highlight .token-line{margin-left:-1rem;margin-right:-1rem;min-width:100%;}.css-1c039qg .gatsby-highlight pre code{float:left;min-width:100%;}.css-1c039qg .gatsby-highlight pre[class*="language-"]:before{background-color:var(--theme-ui-colors-white);border-radius:0 0 4px 4px;color:var(--theme-ui-colors-black);font-size:12px;letter-spacing:0.035rem;padding:0.1rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:600;}.css-1c039qg .gatsby-highlight pre[class~="language-golang"]:before,.css-1c039qg .gatsby-highlight pre[class~="language-go"]:before{content:"go";background:#79d4fd;color:var(--theme-ui-colors-black);}.css-1c039qg .gatsby-highlight pre[class~="language-javascript"]:before,.css-1c039qg .gatsby-highlight pre[class~="language-js"]:before{content:"js";background:#f7df1e;color:var(--theme-ui-colors-black);}.css-1c039qg .gatsby-highlight pre[class~="language-jsx"]:before{content:"jsx";background:#61dafb;color:var(--theme-ui-colors-black);}.css-1c039qg .gatsby-highlight pre[class~="language-ts"]:before{content:"ts";background:#61dafb;color:var(--theme-ui-colors-black);}.css-1c039qg .gatsby-highlight pre[class~="language-tsx"]:before{content:"tsx";background:#61dafb;color:var(--theme-ui-colors-black);}.css-1c039qg .gatsby-highlight pre[class~="language-html"]:before{content:"html";background:#005a9c;color:var(--theme-ui-colors-white);}.css-1c039qg .gatsby-highlight pre[class~="language-xml"]:before{content:"xml";background:#005a9c;color:var(--theme-ui-colors-white);}.css-1c039qg .gatsby-highlight pre[class~="language-svg"]:before{content:"svg";background:#005a9c;color:var(--theme-ui-colors-white);}.css-1c039qg .gatsby-highlight pre[class~="language-graphql"]:before{content:"GraphQL";background:#E10098;}.css-1c039qg .gatsby-highlight pre[class~="language-css"]:before{content:"css";background:#ff9800;color:var(--theme-ui-colors-black);}.css-1c039qg .gatsby-highlight pre[class~="language-mdx"]:before{content:"mdx";background:#f9ac00;color:var(--theme-ui-colors-black);}.css-1c039qg .gatsby-highlight pre[class~="language-php"]:before{content:"php";background:#777bb3;color:var(--theme-ui-colors-black);}.css-1c039qg .gatsby-highlight pre[class~="language-py"]:before,.css-1c039qg .gatsby-highlight pre[class~="language-python"]:before{content:"py";background:#306998;color:var(--theme-ui-colors-white);}.css-1c039qg .gatsby-highlight pre[class~="language-text"]:before{content:"text";}.css-1c039qg .gatsby-highlight pre[class~='language-shell']:before{content:'shell';}.css-1c039qg .gatsby-highlight pre[class~='language-sh']:before{content:'sh';}.css-1c039qg .gatsby-highlight pre[class~='language-bash']:before{content:'bash';}.css-1c039qg .gatsby-highlight pre[class~='language-yaml']:before{content:'yaml';background:#ffa8df;}.css-1c039qg .gatsby-highlight pre[class~='language-yml']:before{content:'yml';background:#ffa8df;}.css-1c039qg .gatsby-highlight pre[class~='language-markdown']:before{content:'md';}.css-1c039qg .gatsby-highlight pre[class~='language-json']:before,.css-1c039qg .gatsby-highlight pre[class~='language-json5']:before{content:'json';background:linen;}.css-1c039qg .gatsby-highlight pre[class~='language-diff']:before{content:'diff';background:#e6ffed;}.css-1c039qg .gatsby-highlight>code[class*="language-"],.css-1c039qg .gatsby-highlight>pre[class=*="language-"]{word-spacing:normal;word-break:normal;overflow-wrap:normal;line-height:1.5;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}.css-1c039qg .gatsby-highlight pre::-webkit-scrollbar{width:0.5rem;height:0.5rem;}.css-1c039qg .gatsby-highlight pre::-webkit-scrollbar-thumb{background-color:var(--theme-ui-colors-primary);}.css-1c039qg .gatsby-highlight pre::-webkit-scrollbar-track{background:var(--theme-ui-colors-muted);}.css-1c039qg .line-number-style{display:inline-block;width:3em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.3;text-align:center;position:relative;}.css-1c039qg .code-title{background-color:var(--theme-ui-colors-muted);color:var(--theme-ui-colors-text);font-size:1em;padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";}.css-1c039qg .token-line{padding-right:1rem;}.css-1c039qg .highlight-line{border-left:4px solid rgb(2, 155, 206);}.css-1c039qg .highlight-line .line-number-style{width:calc(3em - 4px);opacity:0.5;left:-2px;}.css-1c039qg .footnotes{border-top-style:solid;border-top-width:1px;border-top-color:divide;padding-top:0.5rem;margin-top:4rem;overflow:auto;}.css-1c039qg .footnotes .sr-only{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;}.css-1c039qg .react-live-wrapper{position:relative;}</style><style data-emotion="css c9nvgd">.css-c9nvgd{box-sizing:border-box;margin:0;min-width:0;}.css-c9nvgd .prism-code{font-size:1em;webkit-overflow-scrolling:touch;background-color:var(--theme-ui-colors-transparent);min-width:100%;margin-bottom:0;margin-top:0;overflow:auto;}.css-c9nvgd .prism-code[data-linenumber="false"] .token-line{padding-left:1rem;}.css-c9nvgd .gatsby-highlight[data-language='none'] .code-content,.css-c9nvgd .gatsby-highlight[data-language=''] .code-content{padding-top:1rem;}.css-c9nvgd .code-content{padding:2rem 1rem 1rem 1rem;color:var(--theme-ui-colors-plain-color);background-color:var(--theme-ui-colors-plain-backgroundColor);}.css-c9nvgd .token{display:inline-block;}.css-c9nvgd p>code,.css-c9nvgd li>code{background-color:var(--theme-ui-colors-muted);color:var(--theme-ui-colors-heading);padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;border-radius:4px;font-size:0.95em;}.css-c9nvgd .gatsby-highlight{font-size:1.25em;position:relative;webkit-overflow-scrolling:touch;border-radius:4px;overflow:hidden;margin-left:0;margin-right:0;}@media screen and (min-width: 640px){.css-c9nvgd .gatsby-highlight{font-size:1.25em;margin-left:0;margin-right:0;}}@media screen and (min-width: 768px){.css-c9nvgd .gatsby-highlight{margin-left:0;margin-right:0;}}@media screen and (min-width: 1024px){.css-c9nvgd .gatsby-highlight{margin-left:-1rem;margin-right:-1rem;}}.css-c9nvgd .gatsby-highlight .token-line{margin-left:-1rem;margin-right:-1rem;min-width:100%;}.css-c9nvgd .gatsby-highlight pre code{float:left;min-width:100%;}.css-c9nvgd .gatsby-highlight pre[class*="language-"]:before{background-color:var(--theme-ui-colors-white);border-radius:0 0 4px 4px;color:var(--theme-ui-colors-black);font-size:12px;letter-spacing:0.035rem;padding:0.1rem 0.5rem;position:absolute;left:1rem;text-align:right;text-transform:uppercase;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:600;}.css-c9nvgd .gatsby-highlight pre[class~="language-golang"]:before,.css-c9nvgd .gatsby-highlight pre[class~="language-go"]:before{content:"go";background:#79d4fd;color:var(--theme-ui-colors-black);}.css-c9nvgd .gatsby-highlight pre[class~="language-javascript"]:before,.css-c9nvgd .gatsby-highlight pre[class~="language-js"]:before{content:"js";background:#f7df1e;color:var(--theme-ui-colors-black);}.css-c9nvgd .gatsby-highlight pre[class~="language-jsx"]:before{content:"jsx";background:#61dafb;color:var(--theme-ui-colors-black);}.css-c9nvgd .gatsby-highlight pre[class~="language-ts"]:before{content:"ts";background:#61dafb;color:var(--theme-ui-colors-black);}.css-c9nvgd .gatsby-highlight pre[class~="language-tsx"]:before{content:"tsx";background:#61dafb;color:var(--theme-ui-colors-black);}.css-c9nvgd .gatsby-highlight pre[class~="language-html"]:before{content:"html";background:#005a9c;color:var(--theme-ui-colors-white);}.css-c9nvgd .gatsby-highlight pre[class~="language-xml"]:before{content:"xml";background:#005a9c;color:var(--theme-ui-colors-white);}.css-c9nvgd .gatsby-highlight pre[class~="language-svg"]:before{content:"svg";background:#005a9c;color:var(--theme-ui-colors-white);}.css-c9nvgd .gatsby-highlight pre[class~="language-graphql"]:before{content:"GraphQL";background:#E10098;}.css-c9nvgd .gatsby-highlight pre[class~="language-css"]:before{content:"css";background:#ff9800;color:var(--theme-ui-colors-black);}.css-c9nvgd .gatsby-highlight pre[class~="language-mdx"]:before{content:"mdx";background:#f9ac00;color:var(--theme-ui-colors-black);}.css-c9nvgd .gatsby-highlight pre[class~="language-php"]:before{content:"php";background:#777bb3;color:var(--theme-ui-colors-black);}.css-c9nvgd .gatsby-highlight pre[class~="language-py"]:before,.css-c9nvgd .gatsby-highlight pre[class~="language-python"]:before{content:"py";background:#306998;color:var(--theme-ui-colors-white);}.css-c9nvgd .gatsby-highlight pre[class~="language-text"]:before{content:"text";}.css-c9nvgd .gatsby-highlight pre[class~='language-shell']:before{content:'shell';}.css-c9nvgd .gatsby-highlight pre[class~='language-sh']:before{content:'sh';}.css-c9nvgd .gatsby-highlight pre[class~='language-bash']:before{content:'bash';}.css-c9nvgd .gatsby-highlight pre[class~='language-yaml']:before{content:'yaml';background:#ffa8df;}.css-c9nvgd .gatsby-highlight pre[class~='language-yml']:before{content:'yml';background:#ffa8df;}.css-c9nvgd .gatsby-highlight pre[class~='language-markdown']:before{content:'md';}.css-c9nvgd .gatsby-highlight pre[class~='language-json']:before,.css-c9nvgd .gatsby-highlight pre[class~='language-json5']:before{content:'json';background:linen;}.css-c9nvgd .gatsby-highlight pre[class~='language-diff']:before{content:'diff';background:#e6ffed;}.css-c9nvgd .gatsby-highlight>code[class*="language-"],.css-c9nvgd .gatsby-highlight>pre[class=*="language-"]{word-spacing:normal;word-break:normal;overflow-wrap:normal;line-height:1.5;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}.css-c9nvgd .gatsby-highlight pre::-webkit-scrollbar{width:0.5rem;height:0.5rem;}.css-c9nvgd .gatsby-highlight pre::-webkit-scrollbar-thumb{background-color:var(--theme-ui-colors-primary);}.css-c9nvgd .gatsby-highlight pre::-webkit-scrollbar-track{background:var(--theme-ui-colors-muted);}.css-c9nvgd .line-number-style{display:inline-block;width:3em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.3;text-align:center;position:relative;}.css-c9nvgd .code-title{background-color:var(--theme-ui-colors-muted);color:var(--theme-ui-colors-text);font-size:1em;padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";}.css-c9nvgd .token-line{padding-right:1rem;}.css-c9nvgd .highlight-line{border-left:4px solid rgb(2, 155, 206);}.css-c9nvgd .highlight-line .line-number-style{width:calc(3em - 4px);opacity:0.5;left:-2px;}.css-c9nvgd .footnotes{border-top-style:solid;border-top-width:1px;border-top-color:divide;padding-top:0.5rem;margin-top:4rem;overflow:auto;}.css-c9nvgd .footnotes .sr-only{border:0;clip:rect(0, 0, 0, 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;}.css-c9nvgd .react-live-wrapper{position:relative;}</style><main id="skip-nav" class=" css-c9nvgd"><style data-emotion="css ay3se6">.css-ay3se6{box-sizing:border-box;margin:0;min-width:0;font-family:inherit;font-weight:700;line-height:1.25;font-family:inherit;font-weight:700;line-height:1.25;margin:0;margin-bottom:0.25rem;font-size:2em;margin-top:2rem;color:var(--theme-ui-colors-heading);}@media screen and (min-width: 640px){.css-ay3se6{font-size:2.25em;}}@media screen and (min-width: 768px){.css-ay3se6{font-size:2.25em;}}@media screen and (min-width: 1024px){.css-ay3se6{font-size:3em;}}</style><h1 class="css-ay3se6">书签</h1><style data-emotion="css 1ueim5q">.css-1ueim5q{margin-top:4rem;margin-bottom:4rem;}.css-1ueim5q figure{margin:0;}.css-1ueim5q figure img{border-radius:4px;box-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -4px rgb(0 0 0 / 0.1);max-width:100%;}</style><section class="css-1ueim5q"><style data-emotion="css 1y7jhj">.css-1y7jhj{font-family:inherit;font-weight:700;line-height:1.25;margin:0;margin-bottom:0.25rem;font-size:1.875em;margin-top:2rem;color:var(--theme-ui-colors-heading);}@media screen and (min-width: 640px){.css-1y7jhj{font-size:2em;}}@media screen and (min-width: 768px){.css-1y7jhj{font-size:2em;}}@media screen and (min-width: 1024px){.css-1y7jhj{font-size:2.25em;}}</style><style data-emotion="css 19rk9qi">.css-19rk9qi{font-family:inherit;font-weight:700;line-height:1.25;margin:0;margin-bottom:0.25rem;font-size:1.875em;margin-top:2rem;color:var(--theme-ui-colors-heading);font-family:inherit;font-weight:700;line-height:1.25;margin:0;margin-bottom:0.25rem;font-size:1.875em;margin-top:2rem;color:var(--theme-ui-colors-heading);}@media screen and (min-width: 640px){.css-19rk9qi{font-size:2em;}}@media screen and (min-width: 768px){.css-19rk9qi{font-size:2em;}}@media screen and (min-width: 1024px){.css-19rk9qi{font-size:2.25em;}}@media screen and (min-width: 640px){.css-19rk9qi{font-size:2em;}}@media screen and (min-width: 768px){.css-19rk9qi{font-size:2em;}}@media screen and (min-width: 1024px){.css-19rk9qi{font-size:2.25em;}}</style><h2 id="大数据" style="position:relative" class="css-19rk9qi"><style data-emotion="css 1d2wwf6">.css-1d2wwf6{color:var(--theme-ui-colors-primary);-webkit-text-decoration:none;text-decoration:none;}.css-1d2wwf6:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><style data-emotion="css 1diwg7s">.css-1diwg7s{color:var(--theme-ui-colors-primary);-webkit-text-decoration:none;text-decoration:none;color:var(--theme-ui-colors-primary);-webkit-text-decoration:none;text-decoration:none;}.css-1diwg7s:hover{-webkit-text-decoration:underline;text-decoration:underline;}.css-1diwg7s:hover{-webkit-text-decoration:underline;text-decoration:underline;}</style><a href="#%E5%A4%A7%E6%95%B0%E6%8D%AE" aria-label="大数据 permalink" class="anchor before css-1diwg7s"><span><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></span></a>大数据</h2>
<style data-emotion="css cbhsdz">.css-cbhsdz li{font-size:1em;letter-spacing:-0.003em;line-height:1.625;--baseline-multiplier:0.179;--x-height-multiplier:0.35;}</style><style data-emotion="css ge23ay">.css-ge23ay li{font-size:1em;letter-spacing:-0.003em;line-height:1.625;--baseline-multiplier:0.179;--x-height-multiplier:0.35;}.css-ge23ay li{font-size:1em;letter-spacing:-0.003em;line-height:1.625;--baseline-multiplier:0.179;--x-height-multiplier:0.35;}</style><ul class="css-ge23ay">
<li class="css-zezy6m"><a href="https://github.com/heibaiying/BigData-Notes" class="css-1diwg7s">大数据学习笔记</a> 大数据学习笔记</li>
</ul>
<style data-emotion="css 109ocif">.css-109ocif{font-family:inherit;font-weight:700;line-height:1.25;margin:0;margin-bottom:0.25rem;font-size:1.5em;margin-top:2rem;color:var(--theme-ui-colors-heading);}@media screen and (min-width: 640px){.css-109ocif{font-size:1.875em;}}@media screen and (min-width: 768px){.css-109ocif{font-size:1.875em;}}@media screen and (min-width: 1024px){.css-109ocif{font-size:2em;}}</style><style data-emotion="css qk407p">.css-qk407p{font-family:inherit;font-weight:700;line-height:1.25;margin:0;margin-bottom:0.25rem;font-size:1.5em;margin-top:2rem;color:var(--theme-ui-colors-heading);font-family:inherit;font-weight:700;line-height:1.25;margin:0;margin-bottom:0.25rem;font-size:1.5em;margin-top:2rem;color:var(--theme-ui-colors-heading);}@media screen and (min-width: 640px){.css-qk407p{font-size:1.875em;}}@media screen and (min-width: 768px){.css-qk407p{font-size:1.875em;}}@media screen and (min-width: 1024px){.css-qk407p{font-size:2em;}}@media screen and (min-width: 640px){.css-qk407p{font-size:1.875em;}}@media screen and (min-width: 768px){.css-qk407p{font-size:1.875em;}}@media screen and (min-width: 1024px){.css-qk407p{font-size:2em;}}</style><h3 id="hbase" style="position:relative" class="css-qk407p"><a href="#hbase" aria-label="hbase permalink" class="anchor before css-1diwg7s"><span><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></span></a>HBase</h3>
<ul class="css-ge23ay">
<li class="css-zezy6m"><a href="https://hbase.apache.org/" class="css-1diwg7s">HBase</a> HBase 官网</li>
<li class="css-zezy6m"><a href="https://issues.apache.org/jira/projects/HBASE/summary" class="css-1diwg7s">Jira</a> HBase Jira 地址</li>
</ul>
<h3 id="kafka" style="position:relative" class="css-qk407p"><a href="#kafka" aria-label="kafka permalink" class="anchor before css-1diwg7s"><span><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></span></a>Kafka</h3>
<ul class="css-ge23ay">
<li class="css-zezy6m"><a href="https://kafka.apache.org/" class="css-1diwg7s">Kafka</a> Kafka 官网</li>
<li class="css-zezy6m"><a href="https://issues.apache.org/jira/projects/KAFKA/summary" class="css-1diwg7s">Jira</a> Kafka 官网 Jira 地址</li>
</ul>
<h3 id="flink" style="position:relative" class="css-qk407p"><a href="#flink" aria-label="flink permalink" class="anchor before css-1diwg7s"><span><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></span></a>Flink</h3>
<ul class="css-ge23ay">
<li class="css-zezy6m"><a href="https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzU3Mzg4OTMyNQ==&amp;action=getalbum&amp;album_id=1929701066745397252&amp;scene=173&amp;from_msgid=2247484725&amp;from_itemidx=1&amp;count=3&amp;nolastread=1#wechat_redirect" class="css-1diwg7s">Ververica Flink 教程</a></li>
<li class="css-zezy6m"><a href="https://t.hk.uy/aDBQ" class="css-1diwg7s">Ververica Flink 教程 短链</a></li>
<li class="css-zezy6m"><a href="https://flink.apache.org/" class="css-1diwg7s">Flink</a> Flink 官网</li>
<li class="css-zezy6m"><a href="https://issues.apache.org/jira/projects/FLINK/summary" class="css-1diwg7s">Jira</a> Flink Jira 地址</li>
<li class="css-zezy6m"><a href="https://ververica.cn/developers/flink-training-course1/" class="css-1diwg7s">Flink 教程 基础篇</a> Apache Flink 钉钉群直播教程-基础篇</li>
<li class="css-zezy6m"><a href="https://ververica.cn/developers/flink-training-course2/" class="css-1diwg7s">Flink 教程 进阶篇</a> Apache Flink 钉钉群直播教程-进阶篇</li>
<li class="css-zezy6m"><a href="https://ververica.cn/developers/flink-training-course3/" class="css-1diwg7s">Flink 教程 运维&amp;实战篇</a> Apache Flink 钉钉群直播教程-运维&amp;实战篇</li>
<li class="css-zezy6m"><a href="http://www.54tianzhisheng.cn/tags/Flink/" class="css-1diwg7s">Flink 博客 zhisheng</a> Flink 博客 zhisheng</li>
<li class="css-zezy6m"><a href="http://chenyuzhao.me/categories/Flink%E6%BA%90%E7%A0%81/" class="css-1diwg7s">玉兆的博客</a> Flink 博客 玉兆 源码结息</li>
<li class="css-zezy6m"><a href="https://blog.jrwang.me/" class="css-1diwg7s">jrwang</a> Flink 博客 jrwang 源码结息</li>
</ul>
<h3 id="spark" style="position:relative" class="css-qk407p"><a href="#spark" aria-label="spark permalink" class="anchor before css-1diwg7s"><span><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></span></a>Spark</h3>
<ul class="css-ge23ay">
<li class="css-zezy6m"><a href="https://spark.apache.org/" class="css-1diwg7s">Spark</a> Spark 官网</li>
<li class="css-zezy6m"><a href="https://issues.apache.org/jira/projects/SPARK/summary" class="css-1diwg7s">Jira</a> Spark Jira 地址</li>
</ul></section></main><style data-emotion="css 1wuwfmf">.css-1wuwfmf{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:8rem;color:var(--theme-ui-colors-secondary);-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border-top-style:solid;border-top-width:1px;border-top-color:divide;padding-top:1rem;}.css-1wuwfmf a{color:var(--theme-ui-colors-secondary);-webkit-text-decoration:none;text-decoration:none;}.css-1wuwfmf a:hover{color:var(--theme-ui-colors-heading);-webkit-text-decoration:underline;text-decoration:underline;}.css-1wuwfmf a:focus{color:var(--theme-ui-colors-heading);}@media screen and (min-width: 640px){.css-1wuwfmf{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media screen and (min-width: 768px){.css-1wuwfmf{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}}</style><footer class="css-1wuwfmf"><div>© <!-- -->2024<!-- --> based on <!-- -->MQ Blog<!-- -->. All rights reserved.</div><div><a aria-label="Link to the theme&#x27;s GitHub repository" href="https://github.com/LekoArts/gatsby-themes/tree/main/themes/gatsby-theme-minimal-blog" class="css-1s8mmxz">Theme</a> <!-- -->based on<!-- --> <a aria-label="Link to the theme author&#x27;s website" href="https://www.lekoarts.de?utm_source=minimal-blog&amp;utm_medium=Theme" class="css-1s8mmxz">LekoArts</a></div></footer></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/bookmark";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" -->
          <script
            id="gatsby-chunk-mapping"
          >
            window.___chunkMapping="{\"app\":[\"/app-ddab18ac7cf695de545f.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-ad7c8039fc2feb5aba4a.js\"],\"component---src-templates-blog-query-tsx\":[\"/component---src-templates-blog-query-tsx-01cc57d5845dff1be852.js\"],\"component---src-templates-homepage-query-tsx\":[\"/component---src-templates-homepage-query-tsx-b28d4083682fb72f3ae9.js\"],\"component---src-templates-page-query-tsx-content-file-path-docs-pages-about-index-mdx\":[\"/component---src-templates-page-query-tsx-content-file-path-docs-pages-about-index-mdx-d4bc04a381a038353c37.js\"],\"component---src-templates-page-query-tsx-content-file-path-docs-pages-bookmark-index-mdx\":[\"/component---src-templates-page-query-tsx-content-file-path-docs-pages-bookmark-index-mdx-d2ff41592c70ccae693f.js\"],\"component---src-templates-page-query-tsx-content-file-path-docs-pages-color-system-index-mdx\":[\"/component---src-templates-page-query-tsx-content-file-path-docs-pages-color-system-index-mdx-825b6ec2da56e7703cd3.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-bigdata-architecture-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-bigdata-architecture-index-mdx-a5ecb6f720b46b144ad2.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-docker-desktop-to-colima-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-docker-desktop-to-colima-index-mdx-9edf7886e53ef0df7363.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-flink-basic-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-flink-basic-index-mdx-dd43c18746c7cdf3072f.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-flink-environment-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-flink-environment-index-mdx-b57aa39864f780e76e70.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-flink-memory-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-flink-memory-index-mdx-349fb707417c8abd9660.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-gatsby-example-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-gatsby-example-index-mdx-a3a4fd96201b9266e5e0.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-git-operators-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-git-operators-index-mdx-87626a6cf4464e5f6306.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-github-cdn-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-github-cdn-index-mdx-8bb961da58a726a11942.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-grid-css-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-grid-css-index-mdx-27a6ab07495115b744d8.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-mirror-site-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-mirror-site-index-mdx-8fe180811749facf8a7c.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-mysql-statements-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-mysql-statements-index-mdx-0c6efebf35ecf863bba2.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-netflix-recommendation-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-netflix-recommendation-index-mdx-d0cc205b2623559aa70c.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-spark-basic-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-spark-basic-index-mdx-7c794c2fed4acc14bd5b.js\"],\"component---src-templates-post-query-tsx-content-file-path-docs-posts-sql-advanced-grammar-index-mdx\":[\"/component---src-templates-post-query-tsx-content-file-path-docs-posts-sql-advanced-grammar-index-mdx-c66525b7c2b53d287024.js\"],\"component---src-templates-tag-query-tsx\":[\"/component---src-templates-tag-query-tsx-d4b8a83fa1a6117b8b8f.js\"],\"component---src-templates-tags-query-tsx\":[\"/component---src-templates-tags-query-tsx-33a1122e7f92f670a0a7.js\"]}";
          </script>
        <script>window.___webpackCompilationHash="e667a7a7a4885ac5c0ce";</script><script src="/webpack-runtime-3183e811dcdc7f2f5bd8.js" async></script><script src="/framework-83cdbf813badc8905a0e.js" async></script><script src="/app-ddab18ac7cf695de545f.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html>